- 总体配置
- 配置 development 、 production 环境变量
- 基础配置
- 代码压缩
- 提取 CSS 代码
- 添加别名 Alias
- 利用 splitChunks 单独打包第三方模块
- 开启 gzip 压缩
- 为 sass 提供全局样式,以及全局变量
- 为 less 提供全局样式,以及全局变量
- 为 stylus 提供全局变量
- 配置 proxy 代理解决跨域问题
- 添加打包分析
- 外部库使用 CDN 加载 ( 配置 externals)
- 删除 moment 语言包
- 压缩图片
- 预渲染 prerender-spa-plugin
- 添加 IE 兼容
- 去掉 console.log
- 开启 stylelint 检测 scss, css 语法
- 修复 HMR(热更新) 失效
- 修复 Lazy loading routes Error: Cyclic dependency vuejs/vue-cli#1669
- 自动生成雪碧图
- SVG 转 font 字体
- 使用 SVG 组件
- 去除多余无效的 CSS
- 多页面打包 multi-page
- 静态资源自动打包上传阿里 oss、华为 obs
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
利用 splitChunks 单独打包第三方模块
const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
module.exports = {
configureWebpack: config ={
if (IS_PROD) {
config.optimization = {
splitChunks: {
cacheGroups: {
common: {
name: "chunk-common",
chunks: "initial",
minChunks: 2,
maxInitialRequests: 5,
minSize: 0,
priority: 1,
reuseExistingChunk: true,
enforce: true
},
vendors: {
name: "chunk-vendors",
test: /[\\/]node_modules[\\/]/,
chunks: "initial",
priority: 2,
reuseExistingChunk: true,
enforce: true
},
elementUI: {
name: "chunk-elementui",
test: /[\\/]node_modules[\\/]element-ui[\\/]/,
chunks: "all",
priority: 3,
reuseExistingChunk: true,
enforce: true
},
echarts: {
name: "chunk-echarts",
test: /[\\/]node_modules[\\/](vue-)?echarts[\\/]/,
chunks: "all",
priority: 4,
reuseExistingChunk: true,
enforce: true
}
}
}
};
}
},
chainWebpack: config ={
if (IS_PROD) {
config.optimization.delete("splitChunks");
}
return config;
}
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论