使用另一个节点版本重新编译节点依赖项
Recompiling node dependencies using another node version
我想安装一些依赖项,在本例中是安装 node-pty。但是当我 运行 它时,他们给我这个错误:
Error: The module '/home/dev/Documents/project/node_web_kit/node_modules/node-pty/build/Release/pty.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 46. This version of Node.js requires
NODE_MODULE_VERSION 51. Please try re-compiling or re-installing
有什么解决办法吗?
最简单的确定方法就是删除 node_modules 并从头开始重新 运行 npm i
,这样所有模块肯定会为新的 Node 版本设置.
重建 node-pty 模块使用:
npm rebuild node-pty --update-binary
如果上述 none 有效,请尝试手动重建包:
cd node_modules/<your module>
node-pre-gyp rebuild
这对我有用
如果删除 node_modules 文件夹并重新安装对您不起作用,npm rebuild
也对您不起作用,并且您使用的是 nvm,则您可能遇到了不同的问题。我的是我的 npm 配置前缀没有设置为我当前的 nvm 节点版本。所以你可以试试这个:
npm config delete prefix
npm config set prefix $NVM_DIR/versions/node/vX.X.X
当然,将vX.X.X替换为你正在使用的nvm安装节点版本。
万一有人在使用 WebStorm 时遇到这个问题:
WebStorm中的终端window使用node的系统设置,但是运行配置可能使用不同的版本,所以终端中的npm install可能会导致这个错误。只需更改 运行 配置中的节点版本,应该没问题。
就我而言,我是第一次从事 Meteor 项目,并没有意识到 meteor npm install
和 npm install
之间存在差异。前者确保使用与当前 Meteor
版本测试过的相同 npm
版本安装正确的软件包。我的理解是,这在其他框架如 Electron 中很常见。
我想安装一些依赖项,在本例中是安装 node-pty。但是当我 运行 它时,他们给我这个错误:
Error: The module '/home/dev/Documents/project/node_web_kit/node_modules/node-pty/build/Release/pty.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 46. This version of Node.js requires NODE_MODULE_VERSION 51. Please try re-compiling or re-installing
有什么解决办法吗?
最简单的确定方法就是删除 node_modules 并从头开始重新 运行 npm i
,这样所有模块肯定会为新的 Node 版本设置.
重建 node-pty 模块使用:
npm rebuild node-pty --update-binary
如果上述 none 有效,请尝试手动重建包:
cd node_modules/<your module>
node-pre-gyp rebuild
这对我有用
如果删除 node_modules 文件夹并重新安装对您不起作用,npm rebuild
也对您不起作用,并且您使用的是 nvm,则您可能遇到了不同的问题。我的是我的 npm 配置前缀没有设置为我当前的 nvm 节点版本。所以你可以试试这个:
npm config delete prefix
npm config set prefix $NVM_DIR/versions/node/vX.X.X
当然,将vX.X.X替换为你正在使用的nvm安装节点版本。
万一有人在使用 WebStorm 时遇到这个问题:
WebStorm中的终端window使用node的系统设置,但是运行配置可能使用不同的版本,所以终端中的npm install可能会导致这个错误。只需更改 运行 配置中的节点版本,应该没问题。
就我而言,我是第一次从事 Meteor 项目,并没有意识到 meteor npm install
和 npm install
之间存在差异。前者确保使用与当前 Meteor
版本测试过的相同 npm
版本安装正确的软件包。我的理解是,这在其他框架如 Electron 中很常见。