webpack官网上的介绍是:bundle your scripts/images/styles/assets
bundle 这个词很形象,它有包,捆的意思。例如我们说:“上山捡柴,将捡到的树枝捆起来”。前端领域类比起来,就是将散落的代码“捆”起来,“打包”起来。
上山捡柴的过程可以是这样的:
- 捡到的树枝有柳树的,榆树的,黄花梨的,把树皮削了都是树枝,这是
代码转换,我们将 typescript 转换成 javascript, es6 转换成 es5, scss 转换成 css。 - 将树枝打包成1捆,这就是
模块合并—— 将项目里的模块文件,合并成一个文件。 - 捡到的树枝太多了,而“柳树枝”现在用不到,先挑出来,以后用到再来拿,这是
代码分割—— 实际项目中,我们会提取多个页面的公共代码、提取首屏不需要的代码让其异步加载,来提高网页的性能。 - 树枝形状弯弯绕绕,占的体积太大,我们掰一掰,压一压,这是
文件优化,我们会压缩代码体积,压缩合并图片。 - 回到家,妈妈检查下捡的树枝合不合格,这是
代码校验,检查下开发是否符合规范,测试用例是否通过。 - 检查完毕,把捡到的柴送到柴火垛去,这是
发布,我训练我家的小狗小毛叼过去,做到自动发布。
实际上,webpack 做了前4项,帮我们打包,整理好了代码,后面的 5,6 项是前端工程化的体现。