学习 cuixiaorui 大佬的 mini-webpack 的学习笔记!
webpack 是一个 js 应用程序的静态打包工具,官网首页的这幅图很直观的说明了一点,将各类资源根据他们之间的依赖关系,将他们打包到一起。
🤔****为什么会出现 webpack?
这涉及到 js 的历史,在 es6 之前,js 是没有自己的模块系统的,大家更多的使用 cjs 模块规范(node 环境下),而浏览器在很长时间里是不支持模块系统的,所以需要有一个"打包工具"将我们分散的模块代码打包到一起,从而在浏览器环境下运行。
🤔现在浏览器环境支持 esm 模块规范了,还需要 webpack 吗?
webpack 将所有的资源(如 js、css、img 等)都视为模块,webpack 需要项目一个入口,从这个入口开始构造"依赖图"
- 资源
- 依赖图
- 打包