我创建了一个具有 Angular/Fire 和云功能的存储库。 不,我想运行函数模拟器,但它告诉我,index.js 不存在。 但是当我使用 Typescript 时它应该如何存在? 在functions/src/中我有一个index.ts,它应该使用它。 但是当我在 package.json 中设置 "main":"src/index.ts" 时出现此错误:
无法从源加载函数定义:FirebaseError:无法从源加载函数定义:无法从函数源生成清单:SyntaxError:无法在模块外部使用 import 语句
我该如何解决这个问题?
只需运行
npm run build
命令即可生成index.js文件。它将位于functions/lib/文件夹中。
错误消息很清楚,您在错误的位置使用了 import 语句。
正确的导入位置是:
import * as admin from "firebase-admin";
admin.initializeApp();
但是当我在 package.json 中设置 "main":"src/index.ts" 时
坏主意。 Typescript 是一种编译时语言,它不能按原样执行。需要先转换Javascript。
在启动模拟器之前,您是否使用
npm run build
构建了包?它将为您创建index.js。
我认为他们现在已将其添加到文档中:https://firebase.google.com/docs/functions/typescript?gen=2nd#using_an_existing_typescript_project