我正在使用 node-gyp
创建一个 Node.js addon我的 binding.gyp
包含如下一些变量:
...
"link_settings": {
"libraries": [
"-lboost_program_options",
"-lboost_log",
],
"ldflags": [
"-L<@(boost_root)/stage/lib",
"-Wl,-rpath,<@(boost_root)/stage/lib",
]
},
...
(来自 here 的完整 gyp 文件)。我使用 node-gyp configure --boost_root=/PATH/TO/BOOST build
来构建 C++
源代码。当我运行 npm install
时出现问题,因为它只是调用 node-gyp rebuild
而没有任何参数。
有没有办法做到以下任何一项?
- 在运行
npm install
时不运行node-gyp
重建 - 运行
npm install
时将参数传递给node-gyp
最佳答案
在与@robertklep 进行长时间讨论后,我发现将路径作为 command line flag 传递也解决了问题:
npm install --boost_path=/PATH/TO/BOOST
然而正如他所提到的,如果另一个包需要我的包并试图将参数传递给它,不知道会发生什么。
更新:
事实证明,如果另一个包使用原始包,也可以应用此解决方案:
npm link /PATH/TO/ORIGINAL_PACKET --boost_path=/PATH/TO/BOOST
或者如果您直接从包管理器安装,现在想通过依赖包安装它:
npm install --boost_path=/PATH/TO/BOOST
关于node.js - 运行 npm install 时将变量传递给 node-gyp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30866663/