在NW.js中安装Node原生模块

使用NPM安装

对于LTS版本

如果您使用的是LTS版本,在 Windows, 在使用 node-gypnpm安装原生模块之前,您需要用这个文件 替换系统中的 <npm-path>\node_modules\node-gyp\src\win_delay_load_hook.cc,仅在您使用相同版本和架构的Node.js和NW.js.s才有效.

对于非LTS版本

由于V8中的ABI差异,nw-gyp需要全局预安装才能构建模块

要为NW.js安装原生模块,请在终端中运行以下命令:

  1. #全局安装nw-gyp
  2. npm install -g nw-gyp
  3. #设置目标NW.js版本
  4. export npm_config_target=0.18.5
  5. #设置构建架构,ia32x64
  6. export npm_config_arch=x64
  7. export npm_config_target_arch=x64
  8. #使用node-pre-gyp构建的模块的设置env
  9. export npm_config_runtime=node-webkit
  10. export npm_config_build_from_source=true
  11. #将nw-gyp设置为node-gyp
  12. export npm_config_node_gyp=$(which nw-gyp)
  13. #运行npm安装
  14. npm install

!!! “Windows系统”需知:

  • 安装编译器. 比如 Visual C++构建工具.
  • Python 2.7(不支持3.x版本).
  • npm_config_node_gyp环境变量必须设置为 path\to\global\node_modules\nw-gyp\bin\nw-gyp.js而非 nw-gyp.cmd 处理脚本.
  • 在Windows中设置环境变量时必须 set 而非 export.

一个例子(Windows 10, Visual C++ Build Tool v2015):

  1. set PYTHON=C:\Python27\python.exe
  2. set npm_config_target=0.21.6
  3. set npm_config_arch=x64
  4. set npm_config_runtime=node-webkit
  5. set npm_config_build_from_source=true
  6. set npm_config_node_gyp=C:\Users\xxxxxxxxx\AppData\Roaming\npm\node_modules\nw-gyp\bin\nw-gyp.js
  7. npm install --msvs_version=2015

手动重建

!!!”完整安装npm”需知: 当切换NW.js版本后, 推荐做法是删除 node_modules目录并安装这篇文档完整安装npm

一旦切换新版本,您可以使用下面这些工具重建 每个原生模块无需重新安装所有模块.

由于 binding.gyp 是构建原生模块所必需的, 所以您可以查找 binding.gyp 文档来找到所有的原生模块.

!!! “重建所有原生模块”需知: 进行重建时,可能会遇到各种问题甚至崩溃,所以一旦手动重建不成功,您可以尝试完整的npm安装

nw-gyp

nw-gyp源自 node-gyp,支持NW.js特定的头文件和库.其功能与node-gyp工具相同 , 除了需要手动指定版本以及arch( x64ia32)

  1. npm install -g nw-gyp
  2. cd myaddon
  3. nw-gyp rebuild --target=0.13.0 --arch=x64

详细内容请参考这里

node-pre-gyp

部分包使用了node-pre-gyp, 它支持通过 node-gypnw-gyp来构建 Node.js 和 NW.js。

node-pre-gyp的用法如下:

  1. npm install -g node-pre-gyp
  2. cd myaddon
  3. node-pre-gyp build --runtime=node-webkit --target=0.13.0 --target_arch=x64

详细内容请参考这里