簡體   English   中英

FIrebase 部署錯誤:找不到模塊“firebase-admin”

[英]FIrebase deploy error: Cannot find module 'firebase-admin'

我最近在嘗試部署到 Firebase 時開始收到以下錯誤(在過去成功完成之后)。 我不確定發生了什么變化才能開始發生這種情況。 如果我運行 firebase serve 在本地主機上服務,一切正常。 我的 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
);

他們有一個積極的服務中​​斷。 按照此解決方法: 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:

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

在此處輸入圖片說明

所以,問題是職能內部的文件夾的package.json從項目目錄中的package.json不同。 是的,你有 2 個這個文件!

因此,如果您想部署(部署 Functions),請運行 npm install express 或在 Function 文件夾中安裝其他依賴項,您將能夠毫無錯誤地進行部署。

更新文件夾函數中的文件 package.json 並查看依賴項,從 firebase-admin 和 ^ 中刪除符號 ~ 從 firebase-functions 它應該是這樣的:

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

在命令行類型

安裝

然后再次嘗試部署。

我轉到函數目錄並運行yarn (或者npm install如果你是老派)。 然后回到我的項目目錄並再次運行firebase deploy

運行以下命令

npm i firebase-admin 

我也遇到了同樣的錯誤。 我通過在 nodejs 中安裝不同版本來修復該錯誤。 我卸載了我的新版本並安裝了Node v7.8.0 然后它工作正常:)

嘗試安裝: npm i -g firebase-tools@6.8.0

這解決了我的問題。

如果使用 docker,請確保您本地的 nodejs 版本與您在 docker 文件上使用的版本相同。 例如,如果我使用的是 node v16.14.0,(通過在終端中輸入它來查找) node -v ,那么示例 docker 文件應該是:

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

             

我為解決這個問題所做的事情

1.) 確保我在正確的目錄中 package.json

2.) rm -rf node-modules

3.) npm i (missing module)

4.) 使缺少的依賴項不在devDependencies中,而是在 package.json 中的dependencies項中, devDependencies中沒有任何內容被部署

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM