我目前正在编写一个使用 native 模块(lwip
)的node-webkit应用程序。我发现我需要使用 nw-gyp
编译 native 模块。
使用nw-gyp
后,将在node_modules/lwip/build/Release
下创建一个新文件lwip_image.node
。
如何需要原生模块?像这样:
var lwip_image = require('./node_modules/lwip/build/Release/lwip_image.node')
??如果 native 模块是在 Win8 x64 上创建的,它也可以在 Win7 x64 甚至 Win8/7 x32 上运行吗? Mac vs Ubuntu x32 vs Ubuntu x64 有同样的问题吗?
为了促进构建过程,我将在目标平台上构建一次 native 模块。之后,我想将它们全部复制到我的项目目录中,以便我可以自动化构建过程,立即为所有平台构建它。我该怎么办呢?使用 os.platform() 并要求取决于平台? ...
更新:这些帖子正是我正在寻找的内容:https://github.com/joyent/node/issues/4398#issuecomment-11233144 https://github.com/npm/npm/issues/1891
最佳答案
- 您的模块的短名称将在“require”中使用
- 您的 32 位代码(使用 target=ia32 编译)将在 64 位平台上运行,但反之则不然
- 为所有平台编译模块后,应该足以为不同平台打包不同的 zip、.app 或 .exe 版本,并使用模块的不同二进制文件。
关于node.js - Node-webkit 多平台 native 模块与 nw-gyp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27192782/