nodejs的构建流程

364 阅读1分钟

nodejs的构建流程

nodejs项目,使用了GYP的编译方式,其编译文件为node.gyp,从源码可以找到两个重要部分:

构建命令

$ ./configure
$ make -j4

主要模块

  1. 入口文件 在target配置中,type为executable的是可执行文件的编译目标,其中sourcessrc/node_main.cc文件。

    20220503204126

    编译来源文件是在src和deps/v8/include下的文件。依赖histogram和uvwasi库,编译成ELF可执行文件。

  2. js文件编译方式 后面的编译则是编译node的剩余的lib下的未编译的C++代码,其中的action则是通过js2c.py文件将lib/**/*.js和deps/**/*.js按照其ASCII码转化为一个个数组放到node_javascript.cc文件中。生成的文件如下:

    20220503214020

    其中js代码是以字符串的方式存储在node的命名空间中,是不可直接执行。在后面的启动node进程中,这些代码会直接加载进内存中,可以加快模块加载过程。

总体流程图

node构建流程图 (1)

参考资料

node源码