未捕获的错误:module没有自注册

IT技术 javascript node.js node-webkit node-ffi
2021-03-08 04:10:55

我尝试将 node-vlc 与 nw.js (v0.12.0-alpha2) 一起使用。当我在没有 nw.js 的情况下启动我的应用程序时,它可以工作,但是当我用 nw.js 启动它时,出现错误:

未捕获的错误:module未自行注册。”,来源:/home/alexis/Bureau/dev/jukebox/node_modules/vlc/node_modules/ffi/node_modules/bindings/bindings.js (84)

我用 nw-gyp 尝试了一些命令,但它无法帮助我。我使用的是 64 位 Ubuntu 14。

6个回答

如果您已升级节点,则npm rebuild可能会为您解决此问题

您绝对应该在没有sudo 的情况下运行它除非您知道您确实需要 root 访问权限。除非您要处理全局安装的module(通常不鼓励这样做),否则您不需要 root。
2021-04-18 04:10:55
它没有用。事实上,这里的这些答案都不适合我。我在 Webpack Electron 项目中使用驱动列表。
2021-04-24 04:10:55
这并没有真正回答这个问题。问题是什么?我从electronJS的网络工作者那里得到这个错误加载module'usb'。不知道是什么意思,能解释一下是什么问题吗?
2021-04-26 04:10:55
没有为我工作,但rm -r node_modules后来npm install 完成了工作
2021-05-06 04:10:55
不仅限于升级,在重新安装npm和node等情况下也能工作。
2021-05-14 04:10:55

对我来说: rm -r node_modules然后 npm install

我在另一个产品上遇到了类似的问题,我的解决方法是更改​​我正在使用的节点版本。我正在使用0.12.0并改回0.10.26.

就个人而言,我使用NVM来处理节点版本更改。安装 NVM 就像运行一样简单

nvm use 0.10.26

或者将默认版本设置为 0.10.26

nvm alias default 0.10.26

希望这对您有所帮助 - 我们的问题来自不同的产品,但解决方案可能相同。

当我执行全局包但想要使用新节点版本运行本地包时,此修复对我有所帮助。当我运行全局命令时只需要切换版本。
2021-05-08 04:10:55

我有类似的问题。

/Users/user/NodeAddons/bridge/node_modules/bindings/bindings.js:83 错误:module未自行注册。

就我而言,我正在做一个 C/C++ 附加组件,但我忘记导出附加组件,在我的 main.cc 中缺少以下代码:

void Init(v8::Handle<v8::Object> exports) {
  NODE_SET_METHOD(exports, "method", method);
}

NODE_MODULE(method, Init);

希望这对其他人有帮助!谢谢 :)

Aion 因此在文件末尾添加 NODE_MODULE 宏,与您的相同,module编译后无法加载。我可能做错了什么?我想提出一个新问题,因此您的回答几乎与 nodejs 文档相同。减去 NODE_MODULE 后的分号。
2021-04-20 04:10:55
为你高兴 (Y) :D
2021-04-26 04:10:55

我添加了同样的问题,因为我以 sudo 的身份安装到module中......删除节点module文件夹并以普通用户身份重新安装修复了它。

完美的。我使用 chown 更改了文件夹的所有权,并在没有 sudo 的情况下使用 npm 重新安装。有效。
2021-04-27 04:10:55