node.js - Node-webkit 多平台 native 模块与 nw-gyp

标签 node.js node-webkit node-modules node-gyp

我目前正在编写一个使用 native 模块(lwip)的node-webkit应用程序。我发现我需要使用 nw-gyp 编译 native 模块。 使用nw-gyp后,将在node_modules/lwip/build/Release下创建一个新文件lwip_image.node

  1. 如何需要原生模块?像这样: var lwip_image = require('./node_modules/lwip/build/Release/lwip_image.node') ??

  2. 如果 native 模块是在 Win8 x64 上创建的,它也可以在 Win7 x64 甚至 Win8/7 x32 上运行吗? Mac vs Ubuntu x32 vs Ubuntu x64 有同样的问题吗?

  3. 为了促进构建过程,我将在目标平台上构建一次 native 模块。之后,我想将它们全部复制到我的项目目录中,以便我可以自动化构建过程,立即为所有平台构建它。我该怎么办呢?使用 os.platform() 并要求取决于平台? ...

更新:这些帖子正是我正在寻找的内容:https://github.com/joyent/node/issues/4398#issuecomment-11233144 https://github.com/npm/npm/issues/1891

最佳答案

  1. 您的模块的短名称将在“require”中使用
  2. 您的 32 位代码(使用 target=ia32 编译)将在 64 位平台上运行,但反之则不然
  3. 为所有平台编译模块后,应该足以为不同平台打包不同的 zip、.app 或 .exe 版本,并使用模块的不同二进制文件。

关于node.js - Node-webkit 多平台 native 模块与 nw-gyp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27192782/

相关文章:

mysql - Node.js 快速管理员 "connect ECONNREFUSED"

多台机器上的 Node.js tcp 套接字服务器

node.js - 找不到名称 'TaskData'

html - CSS url() 的 <base> 标签

angularjs - 在angularjs中导入 Node 模块

sockets - Node.js 端口同时监听和读取标准输入

子文件夹中的 Node.js npm 依赖项

node-webkit - 在 node-webkit 或 atom/electron 中对子进程进行分组

node.js - 我应该依赖 package.json 还是对我的 Node 模块进行版本控制?

node.js - 如何在不使用 npm install <package_name> 或 yarn install 的情况下安装/下载软件包