webentwicklung-frage-antwort-db.com.de

NodeJs Error - Fehler beim Laden des gRPC-Binärmoduls, da es nicht für das aktuelle System installiert wurde. Erwartete Verzeichnis?

Ich verwende meine NodeJs-App und erhalte einen Fehler. 

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)

Bearbeiten

    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
10
Sudhanshu Gaur

npm rebuild hat bei mir funktioniert :)

Vielen Dank an alle, die geantwortet haben

(Verwenden von n mit Knoten v8.15.1 und npm 6.4.1 )

7
guya

Ich hatte das gleiche Problem (mit nvm) und stellte fest, dass meine ausgewählte Knotenversion sich von der in .nvmrc unterschied. Ich habe die folgenden Schritte ausgeführt, um das Problem zu beheben:

rm -rf node_modules
nvm use
yarn

Ich habe node_modules entfernt, da möglicherweise eine Version einiger Abhängigkeiten für die falsche Version des Knotens installiert wurde. Ich möchte also sicherstellen, dass ich die richtigen Bibliotheken für die ausgewählte Version habe.

Wenn ich nvm use mache, wird die Version des Knotens aus dem .nvmrc in meinem Projekt ausgewählt.

Sie können npm install anstelle von yarn verwenden. So ist mein Projekt aufgebaut.

5
Mnebuerquo

Es scheint, als hätten Sie einen Verion-Konflikt

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

Haben Sie versucht, npm rebuild in Ihrem App-Ordner auszuführen?

4
Tnc Andrei

Ich hatte das gleiche Problem mit Google Cloud Functions und Emulator nach der Migration von Knoten 6 zu Knoten 8. 

Meine Lösung:

  1. npm rebuild/ keine Wirkung
  2. löschen Sie den Ordner _/node_modules im Ordner functions
  3. npm install
  4. im Ordner functions Aufruf: npm i --save firebase-functions
  5. firebase serve // starte den Emulator und versuche es
1
Sean Stayn

Haben Sie zufällig einen npm install in Ihrem lokalen (node-v59) gemacht, als es für den Container (node-v57) hätte gemacht werden sollen? Die grpc-Binärdatei ist für die falsche Version des Knotens also der Fehler. Dies geschieht häufig bei einem lokalen Mac, auf dem ein Linux-Docker-Container ausgeführt wird.

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

Die Lösung wäre rm -fr node_modules und npm install im Container.

0
DeeZone

Nachdem ich viele Dinge ausprobiert hatte, tat ich Folgendes (basierend auf einer anderen Antwort):

  1. Der Knoten wurde auf die neueste Version aktualisiert
  2. Npm auf die neueste Version aktualisiert
  3. npm baut das projekt neu auf
0
cristianorbs