【问题标题】:Cannot deploy firebase cloud functions, because functions/lib/index.js does not exist无法部署 firebase 云函数,因为 functions/lib/index.js 不存在
【发布时间】:2022-08-09 19:06:54
【问题描述】:

我认为 firebase 云功能设置中存在错误。

我做了:

npm install -g firebase-tools

firebase init functions

我已经为打字稿配置了它,一切都安装了,但我无法部署这些功能,因为我收到了这个错误消息:

Error: There was an error reading functions/package.json:

 functions/lib/index.js does not exist, can\'t deploy Cloud Functions

我知道它不存在 - 根本没有 lib 文件夹,但我能做些什么来运行这些函数?

如果我做了所有需要做的事情,为什么我不能运行函数?

  • 您能否向我们展示您在 functions/src/index.ts 中的任何导入,以消除这是一个错误的导入问题?
  • 嘿,您能否分享对我的回答的反馈,以了解是否需要进一步的帮助?
  • @Alex 不,我只是得到functions/lib/index.js does not exist, can\'t deploy Cloud Functions
  • 如果您可以就我的回答和评论提供任何反馈,这对社区非常有用。谢谢!

标签: node.js typescript firebase google-cloud-functions


【解决方案1】:

我了解您可能正在遵循 Getting started 指南或 Use Typescript for Cloud Functions 指南中的说明,在本节中,向导会帮助您选择 Typescript 作为您编写函数的语言。请确保正确安装了语言及其依赖项。在Using an existing Typescript project 的最后一个指南中,它要求您编辑package.json 以添加一个bash 脚本来构建您的打字稿项目:

{
   "name": "functions",
   "scripts": {
     "build": "npm run lint && tsc"
   }
 ...

firebase.json 添加预部署挂钩来运行构建脚本:

 {
   "functions": {
     "predeploy": "npm --prefix functions run build",
   }
 }

但是在这种情况下,您需要检查是否在安装过程中进行了此配置。

您可以检查this answer 用户使用sudo npm install typescript 安装它们的位置,并且正如Doug 提到的,尝试仅在您的项目中安装它,而不是全局安装;它也必须在您的package.json 中定义。

Another example 解决了一个类似的问题,其中:

  • 用户删除了与 Firebase 函数相关的所有内容
  • 使用cd functions进入项目目录(在这种情况下,替换项目的“函数”名称)
  • npm install
  • 再次运行firebase init

让我知道您是否能够解决此问题以进一步帮助您,尝试添加更多信息作为遵循的步骤和文档以及日志。

【讨论】:

  • 您能否尝试运行以下命令:npm run serve。这将创建运行应用程序所需的/lib/ 目录和/lib/index.js 文件。您可以在documentation 中的项目结构灰色框底部找到此步骤。
【解决方案2】:
  • 打开终端并cd到functions
  • 然后运行npx tsc --watch

并尝试服务和部署项目

【讨论】:

    猜你喜欢
    • 2021-03-05
    • 2022-07-28
    • 2017-09-01
    • 1970-01-01
    • 2019-04-25
    • 2019-11-26
    • 2022-12-11
    • 2021-11-17
    相关资源
    最近更新 更多