我需要安装用于不同目标架构(Linux x64)的npm软件包,而不是从(Windows x86)运行npm的机器。有没有办法告诉npm install
下载适用于其他操作系统/架构的软件包?
答案 0 :(得分:6)
大多数本机节点模块使用node-pre-gyp
,它使用安装脚本搜索OS / arch / v8 ABI组合的预构建二进制文件,如果没有,则回退到本机版本。
假设您的原生模块使用node-pre-gyp
,您可以这样做:
npm i --target_arch=x64 --target_platform=linux
您会在输出中看到类似的内容:
> bcrypt@1.0.3 install /home/user/myProject/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
[bcrypt] Success: "/home/user/myProject/node_modules/bcrypt/lib/binding/bcrypt_lib.node" is installed via remote
如果找不到预建的二进制文件,node-pre-gyp
将回退到尝试从源代码构建模块。
如果预先构建的模块不可下载,那么还有一种方法可以构建&从你自己的镜子托管他们,但这是一个不同的问题:)