用 nw.gyp 为 nw.js 建造 serialport.js

building serialport.js with nw.gyp for nw.js

我正在尝试将 serialport.js 与我的 nw.js 应用 打包在一起。我很难为 nw.js.

构建 serialport.js

我已经使用 npm 在 "app\resource\node_modules" 中安装了 serialport.js

我还全局安装了 nw.gyp "npm install nw-gyp -g"

然后我将目录更改为 "app\resource\node_modules\serialport" binding.gyp 所在的位置并尝试重建串口nw-gyp "nw-gyp rebuild --target=0.12.3"

这是我得到的错误: binding.gyp

中的未定义变量 module_name

有什么办法可以解决这个问题吗?

其他人好像也有类似的问题: Serialport.js in Node-webkit (nw.js) on Win 7

我也看到不同的节点模块发生了同样的错误: Building node-sqlite3 with nw-gyp

打开node_modules/serialport/binding.gyp,你需要做一些修改...

之前:

  "target_name": "action_after_build",
  "type": "none",
  "dependencies": [ "<(module_name)" ],
  "copies": [
    {
      "files": [ "<(PRODUCT_DIR)/<(module_name).node" ],
      "destination": "<(module_path)"

之后:

  "target_name": "action_after_build",
  "type": "none",
  "dependencies": [ "serialport" ],
  "copies": [
    {
      "files": [ "<(PRODUCT_DIR)/serialport.node" ],
      "destination": "."

并在node_modules/serialport/package中更改module_path。json为:

"module_path": "./build/{configuration}/",

最后,运行 nw-gyp rebuild --target=0.12.3

降级 npm 成功了!试试看

npm 安装 npm@6 -g