【问题标题】:Serving Firebase Functions doesn't hot reload on Windows服务 Firebase 函数不会在 Windows 上热重新加载
【发布时间】:2019-04-16 06:29:57
【问题描述】:

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

【问题讨论】:

标签: firebase google-cloud-functions watchman hot-reload


【解决方案1】:

要使用 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",

旧版本或新版本可能会在编译代码时引入一些问题

【讨论】:

    【解决方案2】:

    我混合了 2 个答案:

    "scripts": {
       "serve": "npm run build -- --watch | firebase emulators:start --only functions",
       ...
    }
    

    【讨论】:

      【解决方案3】:

      我按照以下方式进行操作(除了 galki 的回答):

      firebase serve --only functions
      

      在另一个终端选项卡中我只是使用

      npm run build -- --watch 
      

      从函数目录中。这样你就有了某种更快的开发周期。

      【讨论】:

        【解决方案4】:

        它从当前时间点开始工作(firebase-tools 8.0.0)。

        两者

        firebase serve --only functions
        

         firebase emulators:start --only functions
        

        工作,但仍需要每次手动运行npm run build

        【讨论】:

          【解决方案5】:

          尝试以下 npm 脚本

          "serve": "./node_modules/.bin/tsc --watch | firebase serve --only functions"
          

          【讨论】:

            猜你喜欢
            • 2016-07-04
            • 2016-10-10
            • 1970-01-01
            • 1970-01-01
            • 2021-09-18
            • 1970-01-01
            • 2015-06-25
            • 1970-01-01
            相关资源
            最近更新 更多