10 分钟理解 webpack

458 阅读1分钟

webpack官网上的介绍是:bundle your scripts/images/styles/assets

bundle 这个词很形象,它有包,捆的意思。例如我们说:“上山捡柴,将捡到的树枝捆起来”。前端领域类比起来,就是将散落的代码“捆”起来,“打包”起来。

上山捡柴的过程可以是这样的:

  1. 捡到的树枝有柳树的,榆树的,黄花梨的,把树皮削了都是树枝,这是代码转换,我们将 typescript 转换成 javascript, es6 转换成 es5, scss 转换成 css。
  2. 将树枝打包成1捆,这就是模块合并 —— 将项目里的模块文件,合并成一个文件。
  3. 捡到的树枝太多了,而“柳树枝”现在用不到,先挑出来,以后用到再来拿,这是代码分割 —— 实际项目中,我们会提取多个页面的公共代码、提取首屏不需要的代码让其异步加载,来提高网页的性能。
  4. 树枝形状弯弯绕绕,占的体积太大,我们掰一掰,压一压,这是文件优化,我们会压缩代码体积,压缩合并图片。
  5. 回到家,妈妈检查下捡的树枝合不合格,这是代码校验,检查下开发是否符合规范,测试用例是否通过。
  6. 检查完毕,把捡到的柴送到柴火垛去,这是发布,我训练我家的小狗小毛叼过去,做到自动发布

实际上,webpack 做了前4项,帮我们打包,整理好了代码,后面的 5,6 项是前端工程化的体现。