11

使用firebase serve命令在本地提供 Firebase 功能应该可以启用热重载,但这似乎不适用于 Windows,即使安装了watchmannpm build除了在每次代码更改后运行之外,还有更好的解决方案吗?

4

5 回答 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 回答