以下大部分配置均添加在vue.config.js
- 生产环境自动删除console,debugger,警告 ```javascript // 安装插件 npm install uglifyjs-webpack-plugin
// 在vue.config.js文件中添加配置 configureWebpack: config => { // 为生产环境修改配置… if (process.env.NODE_ENV === ‘production’) { config.plugins.push( new UglifyJsPlugin({ uglifyOptions: { compress: { warnings: false, drop_console: true, drop_debugger: true } }, parallel: true, sourceMap: false }) ) } }
- 设置插件的按需引入(参考各插件自己的说明)<br />- 优化公共SCSS文件的引入```javascriptcss: {loaderOptions: {sass: {// 引入全局变量样式data: `@import "@/path/yourScss.scss";`}}}
去除预加载,代码压缩
chainWebpack: config => {if (process.env.NODE_ENV === 'production') {config.plugins.delete('prefetch');config.plugins.delete('preload');config.optimization.minimize(true);}}
公共代码提取,CDN引入
// 添加配置configureWebpack: () => {return {externals: {vue: 'Vue',vuex: 'Vuex','vue-router': 'VueRouter'}}}// 然后在html里引入cdn即可使用 例:<script src="cdnPath" />
开启gzip压缩 ```javascript // 安装 npm i -D compression-webpack-plugin
// 引用 const CompressionWebpackPlugin = require(‘compression-webpack-plugin’)
// 使用 configureWebpack: () => { return { plugins: [ new CompressionWebpackPlugin({ algorithm: ‘gzip’, test: /.js$|.html$|.css/, threshold: 10240, minRatio: 0.8 }) ] } } ```
