初探webpack的内部工作流程
首先用webpack4做一个小demo,可以无配置构建
1 | yarn init -y |
修改package.json
1 | "scripts": { |
建立src文件夹,创建a.js和index.js两个文件
a.js
1 | modules.exports = '这是一个测试' |
index.js
1 | const str = require('./a.js'); |
执行 yarn start,此时多了一个dist目录,里面输出一个main.js,
看看编译后的样子,并简化代码:
1 | // 精简版本 |
- 编译后的代码包在一个自执行函数内,函数中的modules其实就是下面()内的对象{}
- modules[moduleId].call()这句是将下面()内对应的key执行,modules[‘./src/index.js’] ()得到eval解析的代码
简单实现一个打包工具
1 |
|
再实现一个简单的loader,style-loader作用是创建style标签添加到html中
loader其实就是函数,所以写一个styleLoader方法
1 | let styleLoader = function(src) { |
修改pack.js
1 | script = script.replace(/require\(['"](.+?)['"]\)/g, function() { |