未捕获的错误:模块未自注册


92

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

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

我用nw-gyp尝试了一些命令,但无济于事。我使用的是Ubuntu 14(64位)。


6
请考虑标记奥马尔的答案。那解决了问题。
尼卡比曹

Answers:


154

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


3
除非您确实需要root访问,否则绝对应该在没有 sudo的情况下运行此程序。除非您要处理全局安装的模块(通常不建议这样做),否则不需要root。
gfxmonk 2015年

8
没为我工作,但rm -r node_modules后来npm install 做了这份工作
Spc_555

1
不仅限于升级,在重新安装npm和node等情况下也可以使用。–
Kevin

这并不能真正回答问题。问题是什么?我从electronJS的网络工作者那里得到了这个错误加载模块“ usb”。不知道这意味着什么,您能解释一下问题是什么吗?
PeterT


17

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

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

nvm use 0.10.26

或将默认版本设置为0.10.26

nvm alias default 0.10.26

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


当我执行全局软件包时,此修补程序对我有所帮助,但我想使用新的节点版本运行本地软件包。当我运行全局命令时,只需要切换版本即可。
科林价格

9

我有类似的问题。

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

在我的情况下,我正在做一个C / C ++加载项,而我忘记了导出该加载项,在我的main.cc中缺少以下代码:

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

NODE_MODULE(method, Init);

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


为您感到高兴(Y):D
永恒之塔

3

创建多文件c ++插件时,我曾经遇到过此问题。在我的binding.gyp文件中,我有:

"sources": ["src/*.cc", "src/*.h" ]

我的项目中包含几个* .cc文件。但是,仅在导入了其余文件的一个文件上调用了NODE_MODULE()宏。但是node希望在源中列出的第一个 * .cc文件中调用它。所以我不得不更改源文件以将该文件明确添加到开头


2

对我来说,跑步很npm update有效


可以,但前提是包装已过时。它也可以做其他的事情。npm rebuild还是rm -rf node_modules && npm i正确的答案。
Albin

1

我在0.12和io.js 1.3.0中遇到了同样的问题,恢复为Node.js 0.10可以解决此问题。


1

我添加了相同的问题,因为我以sudo的身份安装到模块中。


1
完善。我使用chown更改了文件夹的所有权,并使用sudo重新安装了npm。有效。
Asheesh


0

我有同样的问题。我引用全局引用脚本的脚本具有无效的引用。我摘下了那个无效的参考资料,错误消失了。我的错误消息没有表明特定的无效引用,这使得调试更加困难。但是我收到的消息是“未捕获的错误:模块未自注册”。

这也发生在我的其他项目中。由于某些原因,如果其中一个字符是大写字母,它将无法识别参考路径。甚至认为,上框是路径的正确拼写。


-1

我也面临着同样的问题,这个问题对我有用。

您需要进入node_module /并通过以下命令配置nw-gyp目标

$ nw-gyp configure --target=0.12.3 

然后

$ nw-gyp build

这对我有用。如果找不到nw-gyp命令,请使用

npm install nw-gyp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.