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

时间:2015-02-12 20:13:13

标签: javascript node.js node-webkit node-ffi

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

  

未捕获错误:模块未自行注册。&#34;,来源:/home/alexis/Bureau/dev/jukebox/node_modules/vlc/node_modules/ffi/node_modules/bindings/bindings.js(84)< / p>

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

12 个答案:

答案 0 :(得分:142)

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

答案 1 :(得分:44)

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

答案 2 :(得分:13)

我遇到了与其他产品类似的问题,我的修复方法是更改​​我正在使用的节点版本。我使用0.12.0并更改回0.10.26

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

一样简单
nvm use 0.10.26

或将默认版本设置为0.10.26

nvm alias default 0.10.26

希望这可以帮到你 - 我们的问题来自不同的产品,但解决方案可能是相同的。

答案 3 :(得分: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);

希望这有助于他人! 谢谢:))

答案 4 :(得分:2)

对我来说,正在运行npm update

答案 5 :(得分:1)

我有0.12和io.js 1.3.0的同样问题,恢复到Node.js 0.10解决了这个问题。

答案 6 :(得分:1)

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

答案 7 :(得分:1)

对我而言npm rebuildnpm update无效。我必须删除node_modules文件夹并运行npm install再次安装它们。

答案 8 :(得分:1)

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

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

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

答案 9 :(得分:0)

我也遇到了同样的问题,这个问题对我有用。

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

$ nw-gyp configure --target=0.12.3 

然后

$ nw-gyp build

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

npm install nw-gyp

答案 10 :(得分:0)

我遇到了同样的问题。我引用全局引用脚本的脚本具有无效引用。我取消了那个无效的引用,错误消失了。我的错误消息没有指出特定的无效引用,这使得调试更加困难。但是&#39;未捕获的错误:模块没有自我注册&#39;是我得到的信息。

这也发生在我的其他项目中。出于某种原因,如果其中一个字符是大写的,它将无法识别引用路径。甚至想到,上壳是道路的正确拼写。

答案 11 :(得分:-1)

我收到内部错误:Module did not self-register

  1. 删除了node_modules文件夹
  2. 跑了npm install

效果很好。