Open wuyuedefeng opened 4 years ago
webpack-bundle-analyzer 自定义命令, 添加环境变量
package.json
{
"scripts": {
"build:analyzer": "use_analyzer=true vue-cli-service build",
}
}
vue.config.js
module.exports = {
configureWebpack: config => {
if (process.env.use_analyzer) {
config.plugins.push(new BundleAnalyzerPlugin())
}
}
}
vue.config.js
生产移除map
文件
module.exports = {
productionSourceMap: false,
}
这个方法的压缩代码能力是非常恐怖的,压缩率可达70%,不过需要了解的是需要服务器开启 gzip 加速才管用, 对服务器会造成一定的压力;
动态 polyfill
指的是根据不同的浏览器,动态载入需要的 polyfill
。 Polyfill.io
通过尝试使用 polyfill
重新创建缺少的功能,可以更轻松地支持不同的浏览器,并且可以大幅度的减少构建体积。
Polyfill Service 原理: 识别 User Agent
,下发不同的 Polyfill
使用方法:在 index.html
中引入如下 script
标签
<script crossorigin="anonymous" src="https://polyfill.io/v3/polyfill.min.js"></script>
lodash
打包体积可以借助babel-plugin-lodash
和lodash-webpack-plugin
这两个插件
安装体积分析插件
webpack-bundle-analyzer
配置
重新运行构建命令
npm run build
,构建后将自动打开分析页面如果需要分析打包速度可使用插件:
speed-measure-webpack-plugin
lodash
优化方案,使用的函数单独引用,不要全部引入, eg:
组件使用CDN
防止将某些 import 的包(package)打包到 bundle 中,而是在运行时(runtime)再去从外部获取这些扩展依赖
在
public/index.html
中添加https://www.jianshu.com/p/481e7214a134