Ошибка развертывания FIrebase: не удается найти модуль 'firebase-admin'

Недавно я начал получать сообщение об ошибке ниже при попытке развертывания в Firebase (после того, как это было успешно сделано в прошлом). Я не уверен, что могло измениться, чтобы это началось. Если я запускаю firebase serve, чтобы служить на localhost, все работает нормально. Мой package.json и требует от index.js также ниже.

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
}

Из 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
);

9 ответов

Решение

У них есть активное нарушение работы. Следуйте этому для обхода: https://status.firebase.google.com/incident/Functions/17024

Выполните следующие команды внутри репозитория функций:

npm install --save-exact firebase-functions@0.7.0 npm install --save-exact firebase-admin@5.4.0

Затем попробуйте снова развернуть функции:

firebase deploy --only functions

Если npm не работает, вы можете попробовать пряжу, которая работает для нас:

yarn add firebase-functions@0.7.0 --exact yarn add firebase-admin@5.4.0 --exact

Обновите файл package.json в функциях папок и посмотрите на зависимости, удалите знак ~ из firebase-admin и ^ из firebase-функций, он должен выглядеть следующим образом:

"dependencies": {
  "firebase-admin": "5.4.0",
  "firebase-functions": "0.7.0"
}

в командной строке типа

установка npm

и затем попытайтесь развернуть снова.

выполните следующую команду

      npm i firebase-admin 

введите описание изображения здесь

Таким образом, проблема в том, что package.json внутри папки Functions отличается от package.json в каталоге вашего проекта. да, у вас есть 2 из этого файла!

Поэтому, если вы хотите выполнить развертывание (развертывание функций), запустите npm install express или установите другие зависимости в папке Function, и вы сможете выполнить развертывание без ошибок.

Я пошел в каталог функций и побежал yarn (или же npm install если вы олдскул). Затем вернулся в каталог моего проекта и побежал firebase deploy снова.

Что я сделал, чтобы исправить это

1.) Убедитесь, что я был в нужном каталоге package.json

2.) rm -rf node-modules

3.) npm i (missing module)

4.) Сделал недостающие зависимости НЕ в, а скорее в dependenciesв package.json ничего нет devDependenciesразвертывается

Я также получил ту же ошибку. Я исправил эту ошибку, установив другую версию в nodejs. Я удаляю свою новую версию и устанавливаю Node v7.8.0. тогда работает нормально:)

Если вы используете докер, убедитесь, что ваша локальная версия nodejs такая же, как и та, которую вы используете в файле докера. Например, если я использую узел v16.14.0 (узнайте, набрав это в своем терминале) node -v, то пример файла докера должен быть:

      FROM node:16.14.0-alpine                             
ENV NODE_ENV=production                 
WORKDIR /app                            
COPY package*.json ./                  
RUN npm install --production            
COPY . .                                
CMD [ "npm", "start" ] 

             

Попробуйте установить: npm i -g firebase-tools@6.8.0

Это решило мою проблему.

Другие вопросы по тегам