web-dev-qa-db-ja.com

NodeJsエラー-gRPCバイナリモジュールのロードに失敗しました。現在のシステムにインストールされていないため、ディレクトリが予想されますか?

NodeJsアプリを実行していますが、エラーが発生しています。

Sudo /usr/local/bin/node app.js    
    Error: Failed to load gRPC binary module because it was not installed for the current system
Expected directory: node-v57-linux-x64-glibc
Found: [node-v59-linux-x64-glibc]
This problem can often be fixed by running "npm rebuild" on the current system
Original error: Cannot find module '/home/projects/kj_app/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc
/grpc_node.node'
    at Object.<anonymous> (/home/projects/kj_app/node_modules/grpc/src/grpc_extension.js:53:17)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/projects/kj_app/node_modules/grpc/src/client.js:37:12)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)

編集

    Sudo /usr/local/bin/npm rebuild

    > [email protected] postinstall /home/projects/kj_app/node_modules/protobufjs
> node scripts/postinstall
> [email protected] install /home/projects/kj_app/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library
[grpc] Success: "/home/projects/kj_app/node_modules/grpc/src/node/extension_binary/node-v59-linux-x64-glibc/grpc_node.node" al
ready installed
Pass --update-binary to reinstall or --build-from-source to recompile
> @google-cloud/[email protected] install /home/projects/kj_app/node_modules/@google-cloud/profiler
> node-gyp rebuild
gyp ERR! clean error 
gyp ERR! stack Error: EACCES: permission denied, rmdir 'build'
gyp ERR! System Linux 4.9.0-6-AMD64
gyp ERR! command "/opt/bitnami/nodejs/bin/.node.bin" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "
rebuild"
gyp ERR! cwd /home/projects/kj_app/node_modules/@google-cloud/profiler
gyp ERR! node -v v9.8.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @google-cloud/[email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @google-cloud/[email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-04-10T16_06_40_444Z-debug.log
27
Sudhanshu Gaur

いくつかのバージョンの競合があるようです

Expected directory: node-v57-linux-x64-glibc
Found: [node-v59-linux-x64-glibc]

アプリフォルダーで npm rebuild を実行しようとしましたか?

14
Tnc Andrei

(nvmを使用して)同じ問題が発生し、選択したノードバージョンが.nvmrcのものと異なることがわかりました。次の手順で修正しました。

rm -rf node_modules
nvm use
yarn

Node_modulesを削除したのは、nodeの間違ったバージョンのいくつかの依存関係のバージョンをインストールした可能性があるため、選択したバージョンの正しいライブラリーがあることを確認するためです。

nvm useを実行すると、プロジェクトの.nvmrcからノードのバージョンが選択されます。

yarnの代わりにnpm installを使用できます。これが私のプロジェクトのセットアップ方法です。

9
Mnebuerquo

ノード6からノード8への移行後、Google Cloud Functions and Emulatorで同じ問題が発生しました。

私のソリューション:

  1. npm rebuild //効果なし
  2. 削除node_modulesフォルダー内のfunctionsフォルダー
  3. npm install
  4. 関数フォルダー呼び出し:npm i --save firebase-functions
  5. firebase serve //エミュレータを起動して試してください
8
Sean Stayn

npm rebuildは私のために働いた:)

答えてくれたみんなに感謝

nとノードv8.15.1およびnpm6.4.1

7
guya

コンテナ(npm install)で行うべきだったのに、ローカル(node-v59)でnode-v57をした可能性はありますか? grpcバイナリはノードのバージョンが間違っているため、エラーになります。これは、Linux Dockerコンテナを実行しているローカルMacでよく発生します。

Expected directory: node-v57-linux-x64-glibc Found: [node-v59-linux-x64-glibc]

解決策は、コンテナでrm -fr node_modulesを実行し、npm installを実行することです。

5
DeeZone

多くのことを試した後、私は次のことをしました(他の答えに基づいて):

  1. ノードを最新バージョンに更新しました
  2. Npmを最新バージョンに更新
  3. プロジェクトでのnpmの再構築
0
cristianorbs