webpack打包原理和优化
打包后的文件:
1,自执行函数
2,参数通过对象的形式传递:
key:文件的路径;value:是一个函数(执行当前文件的代码,eval执行字符串代码)
3,如何多个文件打包成一个文件?通过__webpack_require__
4,原理:通过递归的方式,不停调用自己
打包优化(目的是体积更小,速度更快):
1,自带的优化:
tree-sharking:依赖关系的解析-->不用的代码不会打包(生产环境才会生效)
scope-hosting:作用域提升,定义的变量如果没用到,不会打包
2,自己实现的优化:
速度方面:
happypack:多线程打包(注意:体积比较小的话,打包反而更慢);
体积方面:
IgnorePlugin 去掉不需要的语言包(例如moment.js时间插件很多语言包不需要);
通过 externals 忽略打包某些文件,例如jQuery,可以用cdn引入;
通过 noParse 指定不解析某些文件;
动态链接库(DllPlugin/DllReferencePlugin):打包后的文件体积依然很大?例如react/react-dom/vue,解决 --> 放到一个单独的文件打包,最后把这个文件放到cdn上;
抽离公共代码块;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理