vue-打包遇到的問題


vue-打包

打包后用iframe引入的html文件亂碼

原因:暫不知曉
解決:用live server打開就不會亂碼

生產環境移除所有的console命令

三種解決方法

1

發現vue-cli3.0在打包過程中就使用了terser-webpack-plugin插件進行優化,具體配置可以node_modules/@vue/cli-service/lib/config/prod.js中看到。
if (process.env.VUE_CLI_TEST) {
  webpackConfig.optimization.minimize(false)
} else {
  const TerserPlugin = require('terser-webpack-plugin')
  const terserOptions = require('./terserOptions')
  webpackConfig.optimization.minimizer([
    new TerserPlugin(terserOptions(options))
  ])
}
這里使用了環境變量進行控制,只有打生產包的時候才會調用這個插件進行打包優化。

terser-webpack-plugin的具體配置在同一個文件夾下terserOptions.js中,只要在這個文件中compress對象加入以下代碼:
warnings: false,
drop_console: true,
drop_debugger: true,
pure_funcs: ['console.log'],

2

安裝插件
npm install terser-webpack-plugin --save-dev
module.export = {
  configureWebpack: (config)=>{
    if(process.env.NODE_ENV === 'production'){
      config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
    }
  }
}

3

npm install babel-plugin-transform-remove-console --save-dev
const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
let plugins = [
  [
    "import",
    {
      libraryName: "ant-design-vue",
      libraryDirectory: "es",
      style: true
    }
  ]
];
if (IS_PROD) {
  plugins.push("transform-remove-console");
}
 
module.exports = {
  presets: ["@vue/app"],
  plugins
};

自定義打包入口

vuecli3打包后一片空白


原因:引用路徑錯誤 原因是打包的過程中直接將/直接作為了直接路徑

解決方法:新建vue.config.js文件,添加配置項:publicPath: ‘./’

vuecli3打包后點擊路由無法訪問您的文件

原因:因為為history的時候需要后台配置若找不到資源定位到依賴頁面
解決方案:將路由配置文件中的mode:'history’注釋掉,或者改為hash


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM