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ビット版を使用しています。
ノードをアップグレードした場合、npm rebuild
がこれを修正する可能性があります
私にとって: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
これがお役に立てば幸いです。問題はさまざまな製品にありますが、解決策は同じかもしれません。
同様の問題がありました。
/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);
これが他の人に役立つことを願っています!ありがとう:)
私にとっては、npm update
を実行するとうまくいきました
0.12とio.js 1.3.0で同じ問題が発生しましたが、Node.js 0.10に戻すと問題が修正されました。
私にとってnpm rebuild
またはnpm update
は機能しませんでした。 node_modules
フォルダーを削除し、npm install
を実行してそれらを再度インストールする必要がありました。
マルチファイルC++アドオンを作成するときに、この問題が発生しました。私のbinding.gypファイルには、次のものがありました。
"sources": ["src/*.cc", "src/*.h" ]
そして、私のプロジェクトにはいくつかの* .ccファイルが含まれていました。ただし、NODE_MODULE()マクロは、残りのファイルをインポートした1つのファイルでのみ呼び出されました。ただし、ノードは、ソースにリストされているfrist * .ccファイルで呼び出されることを想定しています。そのため、ソースを変更して明示的にそのファイルを先頭に追加する必要がありました
モジュールにSudoとしてインストールしたため、同じ問題を追加しました...ノードモジュールフォルダーを削除し、通常のユーザーとして再インストールすると修正されました。
同じ問題がありました。グローバル参照スクリプトを参照していたスクリプトに無効な参照がありました。私はその無効な参照を外し、エラーはなくなりました。私のエラーメッセージには、デバッグが困難になった特定の無効な参照が示されていませんでした。しかし、「Uncaught Error:Module was not self-register」というメッセージが表示されました。
これは他のプロジェクトでも起こります。何らかの理由で、文字の1つが大文字の場合、参照パスを認識しません。考えても、上部ケーシングはパスの正しいスペルでした。
私も同じ問題に直面しており、これは私のために働いた。
node_module /に移動し、次のコマンドでnw-gypターゲットを設定する必要があります
$ nw-gyp configure --target=0.12.3
それから
$ nw-gyp build
そしてこれは私のために働いた。 nw-gypコマンドが見つからない場合は、使用します
npm install nw-gyp