I am running my NodeJs App and i am getting an error.
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)
Edit
sudo /usr/local/bin/npm rebuild
> protobufjs@6.8.6 postinstall /home/projects/kj_app/node_modules/protobufjs
> node scripts/postinstall
> grpc@1.10.1 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/profiler@0.1.14 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/profiler@0.1.14 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @google-cloud/profiler@0.1.14 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
By any chance did you do a
npm install
in your local (node-v59
) when it should have been done on the container (node-v57
)? The grpc binary is for the wrong version of node thus the error. This often happens with a local Mac running a linux Docker container.Expected directory: node-v57-linux-x64-glibc Found: [node-v59-linux-x64-glibc]
The solution would be to
rm -fr node_modules
and donpm install
in the container.I had the same problem with Google Cloud Functions and Emulator, after migration from node 6 to node 8.
My Solution:
npm rebuild
// no effectnpm install
npm i --save firebase-functions
firebase serve
// start the emulator and tryIt seems like you have some verion conflict
Have you tried running npm rebuild in your app folder?
I had the same problem (using nvm) and found that my selected node version was different than the one in
.nvmrc
. I did the following steps to fix it:I removed node_modules because it might have installed a version of some dependencies for the wrong version of node, so I want to ensure I have the correct libraries for the selected version.
When I do
nvm use
, it picks the version of node from the.nvmrc
in my project.You can use
npm install
instead ofyarn
. That's just how my project is set up.