以下大部分配置均添加在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文件的引入
```javascript
css: {
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 }) ] } } ```