要使用 typescript 在 firebase 函数上启用 热重载,您可以将这 2 个命令添加到您的 package.json 文件中
"build:watch": "tsc -w"
"serve:watch": "npm run build:watch | firebase emulators:start --only functions",
如果您还想使用路径别名功能您将需要安装 2 个额外的开发包才能使其工作
npm install --save-dev tsc-alias concurrently
tsc-alias 用于在 tsc 编译器的 typescript 编译后将别名路径替换为相对路径,因为单独的编译器无法解析别名路径
concurrently 用于同时运行多个命令
安装 2 个包后,您需要添加这 2 个脚本到您的 package.json 文件
"build:watch": "concurrently --kill-others \"tsc -w\" \"tsc-alias -w\"",
"serve:watch": "npm run build:watch | firebase emulators:start --only functions",
使用热重载开始开发然后就像只在终端中运行一样简单
npm run serve:watch
请注意:
我正在使用这个版本的包
"firebase-admin": "^10.0.1",
"firebase-functions": "^3.14.1",
"tsc-alias": "^1.5.0",
"typescript": "^4.5.5",
"concurrently": "^7.0.0",
旧版本或新版本可能会在编译代码时引入一些问题