nodejs的构建流程
nodejs项目,使用了GYP的编译方式,其编译文件为node.gyp,从源码可以找到两个重要部分:
构建命令
$ ./configure
$ make -j4
主要模块
-
入口文件 在target配置中,type为
executable的是可执行文件的编译目标,其中sources是src/node_main.cc文件。
编译来源文件是在src和deps/v8/include下的文件。依赖histogram和uvwasi库,编译成ELF可执行文件。
-
js文件编译方式 后面的编译则是编译node的剩余的lib下的未编译的C++代码,其中的action则是通过js2c.py文件将
lib/**/*.js和deps/**/*.js按照其ASCII码转化为一个个数组放到node_javascript.cc文件中。生成的文件如下:其中js代码是以字符串的方式存储在node的命名空间中,是不可直接执行。在后面的启动node进程中,这些代码会直接加载进内存中,可以加快模块加载过程。
总体流程图
.png)