NodeJS:如何修复不同的节点模块版本? [复制]

Posted

技术标签:

【中文标题】NodeJS:如何修复不同的节点模块版本? [复制]【英文标题】:NodeJS: How to fix different node module version? [duplicate] 【发布时间】:2018-01-27 10:45:14 【问题描述】:

我正在尝试启动 nodeJS 应用程序,但我确实收到了错误

Error: The module '/Users/api/node_modules/bcrypt/lib/binding/bcrypt_lib.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`).

我已经运行了npm installnpm rebuild。但是还是一样的错误...

【问题讨论】:

检查 npm 命令列表。尝试 npm 更新模块名称 请注意,robertklep 的答案比重复重定向页面上建议您删除整个 node_module 文件夹的答案要好得多。 【参考方案1】:

bcrypt 包需要重新构建,因为它最初是使用另一个版本的 Node.js 安装的。

试试这个:

npm rebuild bcrypt --update-binary

对于纱线用户:

yarn add bcrypt --force

【讨论】:

试过了,没用。仍然有警告NODE_MODULE_VERSION 48. This version of Node.js requires NODE_MODULE_VERSION 57 @spaceman 在这种情况下尝试重新安装bcrypt(或先卸载,然后重新安装)。 @robertklep 如何重新安装bcrypt?做npm install bcrypt --save 没有帮助。 @SuhailGupta 您必须更具体,或者甚至针对您遇到的具体问题提出一个新问题。 如果你每晚使用node,将node二进制文件复制到/usr/local/bin/node是不够的,还需要将lib/node_modulesinclude/node复制到/usr/local/lib/node_modules/usr/local/include/node分别,其中最重要的是,当您在本地构建包时,它会设置新的 NODE_MODULE_VERSION 。复制文件后,确保从项目中擦除 node_modules 并重新安装 everything

以上是关于NodeJS:如何修复不同的节点模块版本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用两个不同的节点版本运行两个不同的nodejs应用程序[关闭]

使用终端安装 Parcel Bundler 时如何修复权限错误

Elasticsearch的底层模块深入解析之node

如何在安全站点上使用 nodejs ws 模块

无主复制系统-读修复和反熵

如何修复“模块构建失败(来自 ./node_modules/postcss-loader/src/index.js)”