gpt4 book ai didi

typescript - Firebase 实验性 :functions:shell not reloading updated code

转载 作者:搜寻专家 更新时间:2023-10-30 21:58:57 27 4
gpt4 key购买 nike

我正在关注这篇文章 @ https://firebase.googleblog.com/2018/01/streamline-typescript-development-cloud-functions.html

我为云函数设置了一个 Typescript 项目。我的代码在 src/index.ts 中,转译后的代码 @ lib/index.js

  • 我用命令启动 shell firebase experimental:functions:shell --debug
  • 并且在其他终端有./node_modules/.bin/tsc --watch

TS 到 JS 的编译正在进行中。但是 shell 并没有像上面文章中解释的那样获取更新的代码。我要退出 shell (Ctrl+C * 3),然后再次运行它以获取最新代码。

我的 Firebase 工具版本:3.17.4

更新 1:

我在 Ubuntu Linux 17.04 中运行。日志显示没有错误。但我正在获取我的控制台日志,如下所示:

firebase > newPledgeListener({foo: "bar"})

'Successfully invoked function.'

firebase > info: User function triggered, starting execution

info: BYE 6

info: Transaction success, undefined

info: Execution took 2852 ms, user function completed successfully

我做错了什么?

最佳答案

更新:解决方法是从源代码(或 linuxbrew)安装 Watchman。


原始答案

我在 Linux 上遇到了同样的问题。我可以让 JavaScript 中的 hellow world 示例进行热重载,但不能获取 TypeScript 示例。似乎 firebase serve 只监视它运行的目录中的 index.js(如果未在 firebase.json 中配置,则将在 functions/ 目录中)。

为了让我的项目为 TypeScript 重新加载(我假设有更复杂的 JavaScript 布局),我不得不使用 Webpack 输出单个文件 functions/dist/index.js 并配置 Firebase 来寻找我的functions/dist 中的函数代码。这将使 firebase functions:shellfirebase serve 的热重载工作。

我当前的工作流程是在一个终端中运行 webpack --watch,在另一个终端中运行 firebase serve --only functions

更新的 firebase.json

{    
"functions": {
"predeploy": "npm --prefix functions run build",
"source": "functions/dist"
}
}

这种方法的一个问题是 firebase deploy 失败并返回源条目,因为它需要该目录中的 package.json。

关于typescript - Firebase 实验性 :functions:shell not reloading updated code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48688444/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com