从零实现一个 JS 模块打包器
git clone https://github.com/daweilv/webpack-mini.git
cd webpack-mini
npm i
git checkout step1
该分支实现了对 es6 module,即 import/export 语法代码的打包。执行 node webpack-mini/index.js
把 src
下的代码打包成一个 bundle.js
。
代码见分支 step1,详细分析请查看文章。
es6 module 都已经啃下来了,commonjs 的 module.exports/require 就很简单了。 代码见分支 step2
- 模块缓存
- 循环依赖
- 省略后缀的文件查找
代码见分支 step3
nodejs 官网经典依赖的例子测试
main starting
a starting
b starting
in b, a.done = false
b done
in a, b.done = true
a done
in main, a.done = true, b.done = true