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
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 )
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.
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?
Ich hatte das gleiche Problem mit Google Cloud Functions und Emulator nach der Migration von Knoten 6 zu Knoten 8.
Meine Lösung:
npm rebuild
/ keine Wirkungnpm install
npm i --save firebase-functions
firebase serve
// starte den Emulator und versuche esHaben 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.
Nachdem ich viele Dinge ausprobiert hatte, tat ich Folgendes (basierend auf einer anderen Antwort):