我尝试将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位上。
答案 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 rebuild
或npm 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
。
npm install
效果很好。