错误:模块未自行注册

Error: Module did not self-register.

本文关键字:注册 模块 错误      更新时间:2023-09-26

服务器:Ubuntu 服务器 14.04

节点:v4.2.6 LTS

NPM:1.3.10

我从 git remote 中提取了我的同事的作品。他将node_modules设为 .gitignore。所以我必须npm安装模块。

但是在成功安装 npm 之后,当我尝试使用摩卡启动项目时。它让我想起了一个模块没有自我注册

错误来自Bcrypt的模块。

at bindings (/base_dir/node_modules/

bcrypt/node_modules/bindings/bindings.js:76:44)

我不想将我的节点降级到 0.10,因为,我不能在该版本中使用 JS 承诺。不知何故,JS承诺是我工作中必须的

这个问题的发生主要是因为你从其他地方复制/克隆了仓库,但是nodeJS的一些模块应该在你的机器上本地安装/注册,在此期间会发生构建过程(也许是一些本地语言,如C)。

请注意,不应暂存 node_modules 文件夹以进行版本控制。 并且应被版本控制工具忽略。 尝试克隆此软件包的人应该首先构建/安装

我找到了这个问题的答案。但请不要仅仅因为你想要而奉献这个。我使用

npm install npm -g.

之后,删除node_modules文件夹,然后

npm install

一切都会好起来的。

我在设置赛普拉斯项目时遇到了这个问题。

在尝试删除然后重新安装所有节点模块并升级所有内容后,我发现问题是由于 Cypress 默认使用其捆绑版本中的节点(在我的情况下是 8.0 版),而我想使用的包要求节点版本为 10 或更高版本。

我确实在我的机器上安装了节点 12.0,但由于 cypress 没有使用它,我必须在设置文件 (cypress.json) 中添加下面显示的行以将"nodeVersion"的值设置为"系统",这样你就会明确告诉 cypress 使用安装在您机器上的节点版本。

将此行添加到设置文件中:

**"nodeVersion": "system"**