J'utilise mon application NodeJs et j'obtiens une erreur.
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)
Modifier
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
J'ai eu le même problème (utilisation de nvm) et j'ai constaté que la version de mon nœud sélectionné était différente de celle de .nvmrc
. J'ai suivi les étapes suivantes pour résoudre ce problème:
rm -rf node_modules
nvm use
yarn
J'ai supprimé node_modules car il a peut-être installé une version de certaines dépendances pour une version incorrecte du nœud. Je souhaite donc m'assurer que j'ai les bonnes bibliothèques pour la version sélectionnée.
Quand je fais nvm use
, il sélectionne la version du noeud à partir du .nvmrc
de mon projet.
Vous pouvez utiliser npm install
au lieu de yarn
. C'est comme ça que mon projet est mis en place.
Il semble que vous ayez un conflit de verion
Expected directory: node-v57-linux-x64-glibc
Found: [node-v59-linux-x64-glibc]
Avez-vous essayé d'exécuter npm rebuild dans le dossier de votre application?
J'ai eu le même problème avec Google Cloud Functions et Emulator après la migration du noeud 6 vers le noeud 8.
Ma solution:
npm rebuild
// pas d'effetnpm install
npm i --save firebase-functions
firebase serve
// démarrez l'émulateur et essayezAvez-vous fait un npm install
dans votre local (node-v59
) alors que cela aurait dû être fait sur le conteneur (node-v57
)? Le binaire grpc correspond à la mauvaise version du noeud, d'où l'erreur. Cela arrive souvent avec un Mac local exécutant un conteneur Linux Docker.
Expected directory: node-v57-linux-x64-glibc
Found: [node-v59-linux-x64-glibc]
La solution serait rm -fr node_modules
et do npm install
dans le conteneur.