Skip to content

Commit 97dc8a6

Browse files
update
1 parent 8645bf1 commit 97dc8a6

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

README.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
## 源代码原理练习,旨在搞清楚前端各种框架技术的运行原理. 以敲代码加实现的方式来加深自己的印象,增加自己的技术深度而不是停留在知其然而不知其所以然.
1+
### 源代码原理练习
2+
#### 该项目的目的是搞清楚前端各种框架技术的运行原理. 以敲代码实现的方式来加深自己的印象,增加自己的技术深度而不是停留在知其然而不知其所以然的层面
3+
4+
#### 任务清单:
25
1. [x] webpack原理的实现
36

4-
如何运行
7+
#### 如何运行
8+
59
1. 首先需要安装pnpm `npm install -g pnpm`
610
2. 运行命令: `pnpm install`
711
3. 运行webpack: `pnpm run webpack`

packages/webpack/README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## 该项目旨弄清楚webpack的build的过程
1+
### 该项目的目的是弄清楚webpack的build的过程和原理
22

33
首先我们通过一个制作一个打包文件的原型。
44
假设有两个js模块,这里我们先假设这两个模块是符合commomjs标准的es5模块。
@@ -18,7 +18,7 @@ exports.default = function(a,b) {return a + b}
1818

1919
我们需要通过模拟exports对象和require方法
2020

21-
## 模拟exports对象
21+
### 模拟exports对象
2222

2323
首先我们知道如果在nodejs打包的时候我们会使用fs.readfileSync()来读取js文件。这样的话js文件会是一个字符串。而如果需要将字符串中的代码运行会有两个方法分别是new Function与Eval。
2424
在这里面我们选用执行效率较高的eval。
@@ -38,7 +38,7 @@ var exports = {}
3838
})(exports, 'exports.default = function(a,b){return a + b}')
3939
```
4040

41-
## 模拟require函数
41+
### 模拟require函数
4242

4343
require函数的功能比较简单,就是根据提供的file名称加载对应的模块。
4444

@@ -106,7 +106,7 @@ console.log(add(1 , 2))
106106
3. 替换exports和require
107107

108108

109-
### 1. 分析模块
109+
#### 1. 分析模块
110110

111111
```typescript
112112
import fs from 'fs';
@@ -152,7 +152,7 @@ const getModuleInfo = (file: string): ModuleInfo => {
152152
export default getModuleInfo;
153153
```
154154

155-
### 2. 收集依赖
155+
#### 2. 收集依赖
156156
```typescript
157157
import getModuleInfo from './get-module-info';
158158
import { ModuleInfo } from './types';
@@ -191,7 +191,7 @@ function getDeps(temp: ModuleInfo[], { deps }: { deps: ModuleInfo['deps'] }) {
191191
}
192192
```
193193

194-
### 3. 生成bundle文件
194+
#### 3. 生成bundle文件
195195
```typescript
196196
import parseModules from './parse-modules';
197197

0 commit comments

Comments
 (0)