我正在关注此帖{@ 3}}
我为Cloud功能设置了一个Typescript项目。我的代码在src/index.ts
,已编译的代码@ lib/index.js
。
firebase experimental:functions:shell --debug
./node_modules/.bin/tsc --watch
TS to JS编译正在进行中。但是shell没有按照上面的文章中的说明获取更新的代码。我要退出shell(Ctrl + C * 3),然后再次运行以获取最新代码。
我的Firebase工具版本:3.17.4
更新1:
我在Ubuntu Linux 17.04中运行。日志显示没有错误。但是我得到了我的控制台日志,如下所示:
firebase> newPledgeListener({foo:" bar"})
'成功调用函数。'
firebase> info:触发用户功能,开始执行
info:BYE 6
info:交易成功,未定义
info:执行时间为2852毫秒,用户功能成功完成
我可能做错了什么?
答案 0 :(得分:0)
更新:解决方法是从源代码(或linuxbrew)安装Watchman。
原始答案
我在Linux上遇到过同样的问题。我可以在JavaScript中获得热门重新加载的hellow world示例,但不是TypeScript示例。似乎firebase服务只监视它运行的目录中的index.js(如果未在firebase.json
中配置,则会在functions/
目录中)。
为了让我的项目重新加载TypeScript(我假设更复杂的JavaScript布局),我不得不使用Webpack输出单个文件functions/dist/index.js
并配置Firebase以在functions/dist
中查找我的函数代码。然后,这会对firebase functions:shell
和firebase serve
进行热重新加载。
我目前的工作流程是在另一个终端中webpack --watch
运行firebase serve --only functions
。
更新了firebase.json
{
"functions": {
"predeploy": "npm --prefix functions run build",
"source": "functions/dist"
}
}
这种方法的一个问题是firebase deploy
因源条目而失败,因为它需要该目录中的package.json。