Node.js: Build System

30th September 2019 at 10:37am
Node.js

node-gyp

node-gyp 是 Node.js 用来编译本地扩展的命令行工具。它自带了 gyp 作为生成构建系统文件(比如 Makefile,Visual Studio project,XCode project)的工具,并且可以针对不同的 Node.js 版本下载不同的头文件用于编译。

依赖 Python 2.7(3.x 不支持,应该是 gyp 使用的)和本地 C/C++ 编译器工具链(如 GCC,Visual C++)。

Node.js 源码中有个 扩展的 Hello World 示例,可以用来尝试 node-gyp 的功能,同时看看 binding.gyp 怎样写。不过感觉这些本地扩展也不好写,需要懂一些 V8 的 C++ 库。

gyp

gyp 是个 Meta-Build system: a build system that generates other build systems.

它本来是 Google 为 Chromium 生成不同平台的生成系统文件而编写的,后来开源了出来。

从它官网上看,它的很多功能点跟 CMake 相似,有时间可以看看它们的 比较。CMake 让我感觉不够优雅,可能 gyp 有它的优点。