这两年先后两次读过 Node.js 源码,但是每次都懒于记录,过几个月就忘记了,这次把疏理过程记录下来,以免之后再浪费时间从头看。虽然是为了备忘,我会尽量站在读者的角度写,以望能帮助想了解 Node.js 源码的朋友节省一些时间、精力。
适合谁
- 你需要熟悉 C/C++
- 你需要熟悉 Node.js,理解异步编程及原理
目录
持续更新中
-> V8 Embedding
- Js Engine V8 Embedding - 编译
- Js Engine V8 Embedding - Hello World 讲解
- Js Engine V8 Embedding - C++ 变量暴露给 Javascript 环境
- Js Engine V8 Embedding - C++ 函数暴露给 Javascript 环境
- Js Engine V8 Embedding - V8 函数传参、返回、异常处理
- Js Engine V8 Embedding - 回调函数
-> Node.js 源码分析
分析方式
根据执行流程,直接从 main 函数开始走, 然后再单独分析具体模块。
疏理执行逻辑是这次分析的重点。
代码
我使用的版本是 node.js 仓库里 v10.x 分支。
1 | git clone git@github.com:nodejs/node.git |
相关资料
Libuv 官网 User Guide 很友好:http://docs.libuv.org/en/v1.x/guide.html
Node.js 源码:https://github.com/nodejs/node
Node.js 源码构建:https://github.com/nodejs/node/blob/master/BUILDING.md
V8 Embedding: https://v8.dev/docs/embed