firebase云错误无法从源加载函数定义

oaxa6hgo  于 2022-12-14  发布在  其他
关注(0)|答案(6)|浏览(121)

无法将更改部署到firebase云
操作:cmd中的“Firebase部署”
结果:

i  deploying functions
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i  functions: ensuring required API cloudbuild.googleapis.com is enabled...
+  functions: required API cloudfunctions.googleapis.com is enabled
+  functions: required API cloudbuild.googleapis.com is enabled
i  functions: preparing codebase default for deployment

错误:无法从源加载函数定义:无法从函数源生成清单:错误[错误包路径未导出]:未在C:\用户\rushikesh.chaskar\IdeaProjects\todosmanager\node_modules\firebase\package.json中定义“导出”主目录

roejwanj

roejwanj1#

添加到永无止境的问题列表。如果你得到类似下面的错误,检查你的导入。
无法从源加载函数定义:Firebase错误:无法从源加载函数定义:无法从函数源生成清单:TypeError:无法读取未定义的属性(阅读'INTERNAL')
我注意到一些过时的Admin SDK说明包含以下内容:

import {initializeApp} from "firebase-admin";

其中正确的导入为:

import {initializeApp} from "firebase-admin/app";
6kkfgxo0

6kkfgxo02#

我通过升级firebase-functions依赖项解决了这个问题

yarn add firebase-functions

在函数目录中

np8igboo

np8igboo3#

在我的例子中,我的代码中有一个错误,只有在部署时才出现。
我得到的错误是firebase functions "Failed to generate manifest from function source: TypeError: Cannot read properties of undefined (reading 'toString')"
经过大约一个小时的注解掉所有内容,然后一次取消注解一大块,我意识到我的代码没有部署到firebase函数,因为我写的一行包含process.env.FUNCTIONS_EMULATOR.toString()。显然,当部署process.env.FUNCTIONS_EMULATOR时是null,所以试图在它上调用toString会抛出错误。
我将该行更改为${process.env.FUNCTIONS_EMULATOR},现在部署了我的firebase函数。

csbfibhn

csbfibhn4#

就我个人而言,我使用jest来测试我的模块。我有这样的文件:

potatoes.js
potatoes.test.js

因此,在部署时导入不起作用

import {potato} from "./potatoes"

我不得不这样做

import {potato} from "./potatoes.js"
yacmzcpb

yacmzcpb5#

在我的例子中,问题是一个TypeScript enum,我把它转换成一个数组在代码中使用。显然,firebase-functions不喜欢这样。
最后,我直接在代码中定义了数组,而没有使用类型定义中的enum

9w11ddsr

9w11ddsr6#

在我的例子中,我忘记在配置文件中包括子文件夹路径。
代码(索引.ts):

exports.my_group = require('./subfolder/parser')

错误:

Error: Failed to load function definition from source: Failed to generate manifest from function source: Error: Cannot find module './subfolder/parser'

解决办法是改变

"include": [
  "src"
]

"include": [
  "src", "src/**/*"
 ]

在tsconfig.json文件中。

相关问题