node-gyp 的 [options] 记录在哪里?

Where are node-gyp's [options] documented?

node-gyp --help 说:

Usage: node-gyp <command> [options]

where <command> is one of:
 - build - Invokes `make` and builds the module
 - clean - Removes any generated build files and the "out" dir
 - configure - Generates a Makefile for the current module
 - rebuild - Runs "clean", "configure" and "build" all at once
 - install - Install node development files for the specified node version.
 - list - Prints a listing of the currently installed node development files
 - remove - Removes the node development files for the specified version

node-gyp@1.0.2  /usr/local/lib/node_modules/node-gyp
node@1.8.1

但是 [options] 实际记录在哪里?我挑选了各种 .js 源文件来尝试弄明白,但一无所获。

是否 [options] 直接传递给 gyp?

具体来说,我正在尝试使用未命名为 'binding.gyp' 的绑定文件,但它似乎位于 node.js 和 gyp 之间的节点 -> Python 包装器没有' 由于一些硬编码而允许它(尽我所能)。

例如:node-gyp configure custom.gyp 产生:

<snip>
gyp info spawn python
gyp info spawn args [ '/usr/local/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp', <-- NOT OK
gyp info spawn args   'custom.gyp', <-- OK
<snip>
gyp info spawn args   '-I',
gyp info spawn args   '/usr/local/lib/node_modules/node-gyp/custom.gypi', <-- MAYBE OK? DON'T LIKE IT BEING GLOBAL (race condition here...)
<snip>
gyp: binding.gyp not found (cwd: <snip>) while trying to load binding.gyp
gyp ERR! configure error <-- YES because it doesn't exist, I want to use 'custom.gyp'
gyp ERR! stack Error: `gyp` failed with exit code: 1
<snip>

其中<snip>只是代表我删除了不相关的信息。

也许我可以通过修改 Python 包装器本身来解决这个问题,但是还有其他方法吗?例如一些node-gyp --option=x

Node-gyp 没有很好的文档记录,所以下面的陈述是我从项目源中发现的。

node-gyp 的选项取决于命令。这些选项列在 configDefs 对象中。其中一些被翻译成 GYP 选项,其他则没有。

GYP 文件名 binding.gypconfigure.js

中被硬编码

GYP 选项可能在 node-gyp 调用之前在 GYP_* 环境变量中设置。请参考 GYP 命令行帮助和 sources,因为 GYP 也没有很好的文档记录。

看起来 node-gyp repo 上现在有很多关于此的文档。