如何安装 NODE_MODULE_VERSION 46
How can I install NODE_MODULE_VERSION 46
如何使用 NODE_MODULE_VERSION 46 安装 Node.js 版本?我让 运行ning 陷入 NODE_MODULE_VERSION 不匹配,重新编译也无济于事,因此切换节点版本可能更容易。
基本上,我经常遇到这个:
Warning: The module '/home/cwaugh/workspaces/myproject/build/Release/addon.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 46. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`). Use --force to continue.
到目前为止,我已经尝试使用 n
更改为不同的版本(我的一个依赖项需要 4.9.1 或更低版本),但这似乎并没有改变 NODE_MODULE_VERSION正如警告所识别的那样。
我也试过重新编译:
- 我试过再次删除 node_modules 和 运行ning
npm install
。 (这个错误看起来像是来自项目根目录,但它对 node_modules 文件夹中的任何内容都不起作用)
node-gyp configure --target=4.9.1 && node-gyp build --target=4.9.1
。我从 here 那里得到了灵感,希望我的运气比 mxcd 好。
node-pre-gyp rebuild
。我看到 this,认为它可能适合我。
这适用于另一台较旧的计算机 运行ning 一个 vagrant 图像。不幸的是,vagrant 也没有在新计算机上工作,所以我一直在从头开始尝试。有时候,我在想是不是因为我用的是Ubuntu18.04。当他们 运行 我们的 docker 图片时,服务器似乎无法超过 16.04。
我明白了!
原来我从 node 和 nodejs 得到了不同的版本
$ node --version
v4.9.1
$ nodejs --version
v8.10.0
我升级到 node v8.10.0,重做一切,错误消失了!
sudo npm install -g n
sudo n 8.10.0
rm -rf node_modules
npm install
node-gyp clean
node-gyp configure
node-gyp build
grunt build
grunt start
# No more NODE_MODULE_VERSION error
我尝试卸载 nodejs(因为它已被 "node" 取代),但 node-grunt-cli 需要它。我猜 grunt 使用 nodejs 而不是 node 来检查它的版本,导致错误。 Ubuntu 存储库有 Grunt v0.4.5,而 Grunt stable 是 v1.0.3,所以更新版本的 grunt 也可能会解决这个问题。
该解决方案对我不起作用,因为我只有一个节点版本 (10)。
我的项目中发生的事情是,package.json
是使用旧版本包从远程存储库中提取的。
在本地安装节点模块时(使用yarn),它会下载最新的依赖项,造成不兼容。
在尝试了几种解决方案之后,最终对我有用的是选择让我头疼的特定包 (login-funcs-nodejs
) 和 运行:yarn upgrade login-funcs-nodejs --latest
如何使用 NODE_MODULE_VERSION 46 安装 Node.js 版本?我让 运行ning 陷入 NODE_MODULE_VERSION 不匹配,重新编译也无济于事,因此切换节点版本可能更容易。
基本上,我经常遇到这个:
Warning: The module '/home/cwaugh/workspaces/myproject/build/Release/addon.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 46. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`). Use --force to continue.
到目前为止,我已经尝试使用 n
更改为不同的版本(我的一个依赖项需要 4.9.1 或更低版本),但这似乎并没有改变 NODE_MODULE_VERSION正如警告所识别的那样。
我也试过重新编译:
- 我试过再次删除 node_modules 和 运行ning
npm install
。 (这个错误看起来像是来自项目根目录,但它对 node_modules 文件夹中的任何内容都不起作用) node-gyp configure --target=4.9.1 && node-gyp build --target=4.9.1
。我从 here 那里得到了灵感,希望我的运气比 mxcd 好。node-pre-gyp rebuild
。我看到 this,认为它可能适合我。
这适用于另一台较旧的计算机 运行ning 一个 vagrant 图像。不幸的是,vagrant 也没有在新计算机上工作,所以我一直在从头开始尝试。有时候,我在想是不是因为我用的是Ubuntu18.04。当他们 运行 我们的 docker 图片时,服务器似乎无法超过 16.04。
我明白了!
原来我从 node 和 nodejs 得到了不同的版本
$ node --version
v4.9.1
$ nodejs --version
v8.10.0
我升级到 node v8.10.0,重做一切,错误消失了!
sudo npm install -g n
sudo n 8.10.0
rm -rf node_modules
npm install
node-gyp clean
node-gyp configure
node-gyp build
grunt build
grunt start
# No more NODE_MODULE_VERSION error
我尝试卸载 nodejs(因为它已被 "node" 取代),但 node-grunt-cli 需要它。我猜 grunt 使用 nodejs 而不是 node 来检查它的版本,导致错误。 Ubuntu 存储库有 Grunt v0.4.5,而 Grunt stable 是 v1.0.3,所以更新版本的 grunt 也可能会解决这个问题。
该解决方案对我不起作用,因为我只有一个节点版本 (10)。
我的项目中发生的事情是,package.json
是使用旧版本包从远程存储库中提取的。
在本地安装节点模块时(使用yarn),它会下载最新的依赖项,造成不兼容。
在尝试了几种解决方案之后,最终对我有用的是选择让我头疼的特定包 (login-funcs-nodejs
) 和 运行:yarn upgrade login-funcs-nodejs --latest