J'ai récemment commencé à rencontrer l'erreur ci-dessous lors d'une tentative de déploiement sur Firebase (après l'avoir fait avec succès par le passé). Je ne suis pas sûr de ce qui aurait pu changer pour que cela commence à se produire. Si je lance firebase pour servir sur le localhost, tout se passe bien. Mon package.json et requiert de index.js sont également ci-dessous.
i deploying functions, hosting
i functions: ensuring necessary APIs are enabled...
i runtimeconfig: ensuring necessary APIs are enabled...
+ runtimeconfig: all necessary APIs are enabled
+ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
i functions: packaged functions (46.02 KB) for uploading
+ functions: functions folder uploaded successfully
i hosting: preparing public directory for upload...
! Warning: Public directory does not contain index.html
+ hosting: 9 files uploaded successfully
i starting release process (may take several minutes)...
i functions: updating function app...
! functions[app]: Deploy Error: Function load error: Code in file index.js can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'firebase-admin'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/user_code/node_modules/firebase-functions/lib/apps.j
s:25:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
Functions deploy had errors. To continue deploying other features (such as datab
ase), run:
firebase deploy --except functions
Error: Functions did not deploy properly.
package.json:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"dependencies": {
"@google-cloud/vision": "^0.12.0",
"async": "^2.5.0",
"consolidate": "^0.14.5",
"express": "^4.15.4",
"firebase-admin": "^5.4.0",
"firebase-functions": "^0.5.7",
"handlebars": "^4.0.10",
"jquery": "^3.2.1",
"js-levenshtein": "^1.1.3",
"json-query": "^2.2.2"
},
"private": true
}
De index.js:
const functions = require('firebase-functions');
const firebase = require('firebase-admin');
const express = require('express');
const engines = require('consolidate');
const Vision = require('@google-cloud/vision');
const levenshtein = require('js-levenshtein');
const restName = require('./restName');
const parser = require('./parser');
const jsonQuery = require('json-query')
const firebaseApp = firebase.initializeApp(
functions.config().firebase
);
Ils ont une interruption de service active. Suivez ceci pour trouver une solution: https://status.firebase.google.com/incident/Functions/17024
Exécutez les commandes suivantes dans le référentiel de fonctions:
npm install --save-exact [email protected] npm install --save-exact [email protected]
Puis essayez à nouveau de déployer des fonctions:
firebase deploy --only functions
Si NPM ne fonctionne pas, vous pouvez essayer le fil qui a fonctionné pour nous:
yarn add [email protected] --exact yarn add [email protected] --exact
Mettez à jour le fichier package.json dans les fonctions de dossier et examinez les dépendances. Supprimez le signe ~ de firebase-admin et ^ de firebase-functions.
"dependencies": {
"firebase-admin": "5.4.0",
"firebase-functions": "0.7.0"
}
en type de ligne de commande
npm installer
puis essayez de vous déployer à nouveau.
Je suis allé au répertoire des fonctions et ai exécuté yarn
(ou npm install
si vous êtes old-school) Ensuite, je suis retourné dans le répertoire de mon projet et j'ai exécuté firebase deploy
à nouveau.
Le problème est donc que package.json dans le dossier Fonctions est différent de package.json dans le répertoire de votre projet. oui, vous avez 2 de ce fichier!
Par conséquent, si vous souhaitez déployer (deploy des fonctions), exécutez npm install express ou installez d’autres dépendances dans le dossier Function et vous pourrez déployer sans erreur.
J'ai aussi la même erreur. Je corrige cette erreur en installant une version différente dans nodejs. Je désinstalle ma nouvelle version et j'installe Node v7.8.0 . alors ça marche bien :)