2017-10-16 4 views
1

En suivant exactement ces étapes:nœud-V57-linux-x64/grpc_node.node manquant

https://firebase.google.com/docs/admin/setup

Et déployer sur mon serveur, je reçois cette erreur:

2017-10-16 19:19:56 4199bf47fc2d ---> Starting app 
2017-10-16 19:19:56 4199bf47fc2d Detected server.js file 
2017-10-16 19:19:57 4199bf47fc2d module.js:529 
2017-10-16 19:19:57 4199bf47fc2d  throw err; 
2017-10-16 19:19:57 4199bf47fc2d ^
2017-10-16 19:19:57 4199bf47fc2d 
2017-10-16 19:19:57 4199bf47fc2d Error: Cannot find module '/data/app/node_modules/firebase-admin/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64/grpc_node.node' 
2017-10-16 19:19:57 4199bf47fc2d  at Function.Module._resolveFilename (module.js:527:15) 
2017-10-16 19:19:57 4199bf47fc2d  at Function.Module._load (module.js:476:23) 
2017-10-16 19:19:57 4199bf47fc2d  at Module.require (module.js:568:17) 
2017-10-16 19:19:57 4199bf47fc2d  at require (internal/module.js:11:18) 
2017-10-16 19:19:57 4199bf47fc2d  at Object.<anonymous> (/data/app/node_modules/firebase-admin/node_modules/grpc/src/node/src/grpc_extension.js:30:15) 
2017-10-16 19:19:57 4199bf47fc2d  at Module._compile (module.js:624:30) 
2017-10-16 19:19:57 4199bf47fc2d  at Object.Module._extensions..js (module.js:635:10) 
2017-10-16 19:19:57 4199bf47fc2d  at Module.load (module.js:545:32) 
2017-10-16 19:19:57 4199bf47fc2d  at tryModuleLoad (module.js:508:12) 
2017-10-16 19:19:57 4199bf47fc2d  at Function.Module._load (module.js:500:3) 

Il était installé dans un nouveau dossier, le plus nouveau npm et tous, supprimé node_modules carte réinstallé, npm installer --unsafe-perm, NPM reconstruire etc. Rien ne fonctionne. Pourquoi le module n'est-il pas installé?

Répondre

3

Je viens de rencontrer le même problème. Pour nous, le problème était que nous installions les modules de nœuds sur un mac et que l'installation de firebase-admin mettait un fichier spécifique à la plate-forme pour le binaire.

Après avoir exécuté l'installation et la vérification de ce répertoire, je vois ceci:

$ ls node_modules/firebase-admin/node_modules/grpc/src/node/extension_binary/ 
node-v48-darwin-x64 

Mais l'environnement qui exécute le lamba recherche:

node-v48-linux-x64 

Une solution facile est d'exécuter le NPM installez dans le même environnement que le lambda fonctionne en utilisant docker. Dans notre cas, j'ai trouvé que le projet lambci a des conteneurs docker pré-construits pour ce cas d'utilisation exact. Ici, j'ai ajouté une ligne de script NPM pour gérer la construction.

"scripts": { 
     "package": "rm -rf node_modules && docker run -v $PWD:/var/task -w /var/task lambci/lambda:build-nodejs6.10 npm install" 
    }, 
+0

J'étais vraiment frustated> NoKey

+0

Ça n'a pas marché pour moi! Je reçois toujours le module 'Impossible de trouver'/tmp/fbfn_284TLWMJRfpLbZI/node_modules/firebase-admin/noeud_modules/grpc/src/noeud/extension_binaire/noeud-v57-linux-x64/grpc_node.node'' Si quelqu'un monte les volumes du menu fixe sur conteneur au lieu d'installer docker dans un conteneur comme: 'docker run -it /v /var/run/docker.sock:/var/run/docker.sock -v/usr/bin/docker:/usr/bin/docker ubuntu: dernière bash' alors ils doivent donner le chemin du fichier hôte à la place de '$ PWD' parce que le docker est en cours d'exécution à partir de la machine hôte et non du conteneur. – Phani