Webpack打包原理
打包原理
(1)读取入口文件,如项目中的main.js;
(2)由入口文件,解析模块所依赖的文件或包,生成ATS树;
(3)对模块代码进行处理:根据@babel工具转换ATS树(es6转es5、polyfill等);
(4)递归所有模块
(5)生成浏览器可运行的代码
打包优化
1.自带优化
a)tree-shaking:依赖关系解析(不用的不打包),只在production环境下执行
b)scope-hosting:作用域提升,有结果输出的直接打包出结果,相应的变量不进行打包
2.插件或其他自定义配置
速度方面:
a)happypack 多线程打包,但是项目体积小的话反而更慢
体积方面:
a) webpack.IgnorePlugin,不需要的语言包不打包
b) external:{‘vue’:’vue’}配置不需要打包的文件
c) modules:{noParse:/vue/} 配置不需要解析的文件
d) 动态链接库:一个想要提取出来的包,单独打包,然后放到CDN上
e) 抽离公共代码块: splitChunkPlugin
-------------本文结束&感谢您的阅读-------------
相关文章