简短结论:Node.js 本身的扩展(Addon,通常是 C/C++ 写的 .node 文件)不能天然跨平台,必须经过对应平台编译或提供预编译版本。
下面分几层说明:
fs、http、大多数 npm 包都是跨平台的。原生扩展一般指:
node-gyp 编译的 C/C++ 插件ffi / binding 的二进制模块这些扩展:
因此:
.node 文件 不能在 Linux 直接用原生扩展在编译时会绑定:
常见做法:
node-pre-gyp@mapbox/node-pre-gypprebuildprebuild-install例如:
npm install bcrypt
安装时自动下载对应平台的 .node 文件。
.node 文件跨平台基本不可行。
Node 扩展“代码可跨平台写,但二进制不能跨平台跑。”
如果你说的是:
可以告诉我,我可以更具体回答。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。