functions/lib/functions/src/index.ts 不存在,无法部署 Cloud Functions

NCT*_*127 20 json npm firebase typescript google-cloud-functions

当我尝试部署 Firebase 云功能时,出现以下错误。

\n

期望的行为:成功部署功能。

\n

错误:

\n
\n

错误:读取functions/package.json时出错:

\n

functions/lib/index.js 不存在,无法部署\nCloud Functions

\n
\n

完整日志:

\n
\n

name@name-MacBook-Pro 功能 % firebase 部署

\n

=== 正在部署到“newtiktok-21570”...

\n

我部署功能运行命令: npm --prefix "$RESOURCE_DIR"\nrun lint

\n

函数@ lint /Users/name/Desktop/Yoveo/functions\neslint "src/**/*"

\n

/Users/name/Desktop/Yoveo/functions/src/index.ts
\n186:67 警告“timestamp”已定义但从未使用
\n@typescript-eslint/no-unused-vars 377:86 警告“mediaNum”为\ n已定义但从未使用过 @typescript-eslint/no-unused-vars 377:104\n警告“commentText”已定义但从未使用\n@typescript-eslint/no-unused-vars 377:125 警告“commentID”已定义\n但从未使用过 @typescript-eslint/no-unused-vars 419:119\n警告“commentID”已定义但从未使用
\n@typescript-eslint/no-unused-vars 463:121 警告“commentID”已定义但从未使用@typescript-eslint/no-unused-vars 520:75
\n警告“mediaNum”已定义但从未使用
\n@typescript-eslint/no-unused-vars 732:25 警告“slap”已定义但从未使用@typescript -eslint/没有未使用的变量

\n

\xe2\x9c\x96 8 个问题(0 个错误,8 个警告)

\n

运行命令: npm --prefix "$RESOURCE_DIR" run build \xe2\x9c\x94 功能:\n已完成运行预部署脚本。

\n

错误:读取functions/package.json时出错:

\n
\n

我的 p.json:

\n
 {\n  "name": "functions",\n  "scripts": {\n    "lint": "eslint \\"src/**/*\\"",\n    "build": "",\n    "serve": "npm run build && firebase emulators:start --only functions",\n    "shell": "npm run build && firebase functions:shell",\n    "start": "npm run shell",\n    "deploy": "firebase deploy --only functions",\n    "logs": "firebase functions:log"\n  },\n  "engines": {\n    "node": "12"\n  },\n  "main": "lib/index.js",\n  "dependencies": {\n    "firebase-admin": "^9.2.0",\n    "firebase-functions": "^3.11.0"\n  },\n  "devDependencies": {\n    "@typescript-eslint/eslint-plugin": "^4.8.1",\n    "@typescript-eslint/parser": "^4.8.1",\n    "eslint": "^7.14.0",\n    "eslint-plugin-import": "^2.22.0",\n    "firebase-functions-test": "^0.2.0",\n    "typescript": "^3.8.0"\n  },\n  "private": true\n}\n
Run Code Online (Sandbox Code Playgroud)\n

小智 20

cd 进入您的函数文件夹并运行此命令

npm 运行脚本构建

这将创建缺少的 lib/index.js 文件


Ali*_*i80 11

firebase使用mainfield inpackage.json作为程序入口点,正确设置它,大概是这样的。

"main": "lib/src/index.js",
Run Code Online (Sandbox Code Playgroud)


Bor*_*jev 5

由于某种原因,最近 Firebase 函数的构建流程发生了变化。

它曾经是:

npm --prefix ./functions install ./functions
firebase deploy --only functions
Run Code Online (Sandbox Code Playgroud)

现在它是:

npm --prefix ./functions install ./functions
npm --prefix ./functions run build
firebase deploy --only functions
Run Code Online (Sandbox Code Playgroud)

我还没有研究导致此更改的原因,但将其添加为构建步骤解决了我的问题。


NCT*_*127 0

解决了:

我能够通过删除与 Firebase 功能相关的所有内容来解决该问题。并运行:firebase init再次。我cd functions跑完之后npm install。然后我在修复错误后能够成功部署:

    3:26  error    'express' should be listed in the project's dependencies. Run 'npm i -S express' to add it  import/no-extraneous-dependencies
Run Code Online (Sandbox Code Playgroud)