使用firebase serve命令在本地提供 Firebase 功能应该可以启用热重载,但这似乎不适用于 Windows,即使安装了watchman。npm build
除了在每次代码更改后运行之外,还有更好的解决方案吗?
问问题
5311 次
5 回答
14
我混合了2个答案:
"scripts": {
"serve": "npm run build -- --watch | firebase emulators:start --only functions",
...
}
于 2020-11-10T17:51:12.283 回答
8
我按照以下方式进行操作(除了 galki 的回答):
firebase serve --only functions
在另一个终端选项卡中,我只是使用
npm run build -- --watch
从函数目录中。这样你就有了某种更快的开发周期。
于 2020-05-10T09:57:29.247 回答
4
尝试以下 npm 脚本
"serve": "./node_modules/.bin/tsc --watch | firebase serve --only functions"
于 2020-04-01T14:31:19.730 回答
1
它从当前时间点开始工作(firebase-tools 8.0.0)。
两个都
firebase serve --only functions
和
firebase emulators:start --only functions
工作,但仍然需要npm run build
每次手动运行。
于 2020-04-01T17:04:28.427 回答
0
要使用 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",
较旧或较新的版本可能会在编译代码时引入一些问题
于 2022-01-29T11:51:10.590 回答