使用 node-gyp 为特定 NODE_MODULE_VERSION 编译节点模块
Compile node module with node-gyp for a specific NODE_MODULE_VERSION
我正在尝试在 Electron 应用程序中使用 npm 包 fsuipc
。但是,当我启动应用程序时出现以下错误
The module 'node_modules\fsuipc\build\Release\fsuipc.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 93. This version of Node.js requires
NODE_MODULE_VERSION 98.
我正在尝试为版本 98 重新编译它。我对 node-gyp 或类似软件没有 0 经验,我只是想让它工作:(。我试过 node-gyp build --target=v16.13.1
但它仍然编译成这个我似乎无法更改的神秘版本 93。感谢任何帮助。
经过两天的研究和无休止的反复试验,我找到了解决方案。
这可能是我使用的电子样板中的一个错误,但归根结底,我必须手动构建本机包。从 here 我了解到我正在使用我当前安装的 node.js 版本编译它,但是因为我使用的是 electron,所以需要使用 electron headers 构建模块。我遵循的步骤是:
cd release/app && npm install fsuipc
本机依赖项必须安装在 release/app。
cd node_modules/fsuipc && npm install
移动到包目录并安装构建所需的依赖项。
node-gyp rebuild --target=15.3.5 --arch=x64 --dist-url=https://electronjs.org/headers
这是关键。目标必须是您在 this website 中使用的有效且完整的版本名称(如果您使用的是电子)。通过反复试验,我通过指定我正在为 x64 构建来解决了一些问题。为了让它使用电子编译,请指定 headers url (所有电子版本都相同)。
cd ../../ && npm install
通过在 release/app 目录中调用安装,模块与“正常”链接 node_modules
然后 运行!
我正在尝试在 Electron 应用程序中使用 npm 包 fsuipc
。但是,当我启动应用程序时出现以下错误
The module 'node_modules\fsuipc\build\Release\fsuipc.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 93. This version of Node.js requires
NODE_MODULE_VERSION 98.
我正在尝试为版本 98 重新编译它。我对 node-gyp 或类似软件没有 0 经验,我只是想让它工作:(。我试过 node-gyp build --target=v16.13.1
但它仍然编译成这个我似乎无法更改的神秘版本 93。感谢任何帮助。
经过两天的研究和无休止的反复试验,我找到了解决方案。
这可能是我使用的电子样板中的一个错误,但归根结底,我必须手动构建本机包。从 here 我了解到我正在使用我当前安装的 node.js 版本编译它,但是因为我使用的是 electron,所以需要使用 electron headers 构建模块。我遵循的步骤是:
cd release/app && npm install fsuipc
本机依赖项必须安装在 release/app。cd node_modules/fsuipc && npm install
移动到包目录并安装构建所需的依赖项。node-gyp rebuild --target=15.3.5 --arch=x64 --dist-url=https://electronjs.org/headers
这是关键。目标必须是您在 this website 中使用的有效且完整的版本名称(如果您使用的是电子)。通过反复试验,我通过指定我正在为 x64 构建来解决了一些问题。为了让它使用电子编译,请指定 headers url (所有电子版本都相同)。cd ../../ && npm install
通过在 release/app 目录中调用安装,模块与“正常”链接 node_modules
然后 运行!