webpack性能优化
参考:https://www.jianshu.com/p/809958a504b8
一、减少webpack打包后的文件体积
-
按需加载【这个不是减少打包后的体积,而是运行时加载文件的体积减少了】
如:将每个路由页面单独打包为一个文件component: () => import(/* webpackChunkName: "home" */ '../pages/home/Home'),
webpack按需加载原理:https://juejin.cn/post/6850418111599165448
js的懒加载,最后的实现都是要通过script标签实现的。webpack的懒加载也是一样 -
-
二、构建速度优化【减少webpackd打包时间】
-
当项目中出现 import ‘react’ 既不是绝对路径也不是相对路径时,指定好搜索的路径,可以不用过多的查询
-
尽可能少的使用 resolve.alias 来设置路径别名,因为会影响到tree shaking 的优化
-
后缀自动补全尽可能的少。减少路径查询的工作
-
-
三、分包【即提取公共代码】
注意:
- webpack是支持动态导入文件的。如
import(`./locale/${language}.json`)
因为无法确定具体哪个文件,webpack会把 l
ocale
目录中的每个.json
文件打包到新的 chunk 中。在运行时,计算完变量language
后,就可以正确加载对应的文件。
如果locale目录下不是所有的json文件都要打包,webpack也提供了配置,可以减少不必要的文件打包进去。提示
使用webpackInclude
andwebpackExclude
选项可让你添加正则表达式模式,以减少 webpack 打包导入的文件数量。 - webpack动态导入文件,打包后的文件名,可以使用占位符
[index]
和[request]
分别支持递增的数字或实际的解析文件名。定义打包后名称。
import(/* webpackChunkName: "[request]" */ `../views/dongtai/${this.routerText}.vue`)