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

原文地址:https://www.cnblogs.com/ycyc123/p/13500660.html