firebase功能中的“ firebase服务”未运行最新更改

lor*_*eru 6 node.js firebase typescript google-cloud-functions firebase-cli

我正在使用Firebase函数。使用command部署到Firebase服务器时,工作正常firebase deploy --only functions。但是,我当然想在部署到服务器之前在本地测试我的功能。我看到运行firebase的结果是,本地“部署”的功能没有我在indext.ts中所做的最新更改-正在运行上次构建的版本,即index.js中的版本。

我的问题是,如何手动构建Firebase函数项目以使用最新更改在本地对其进行测试?firebase serve在本地部署项目之前是否应该自动构建项目?对我来说,这听起来像个虫子。

Dou*_*son 12

如果要在运行firebase serve或时将更改重新加载到TypeScript中firebase functions:shell,您要做的就是使用初始化项目时为您创建的npm脚本再次构建项目(请参见package.json):

cd functions
npm run build
Run Code Online (Sandbox Code Playgroud)

这会将您的TypeScript转换为JavaScript,并且仿真器会自动提取对JavaScript的更改。

另外,如果您是TypeScript的高级用户,则可以运行tsc --watch以在磁盘上源文件更改时自动将TS编译为JS。您可以在此博客中了解有关内容的更多信息。

  • 或者你可以将其作为你的 npm “serve” 脚本: `"serve": "npm run build && firebase emulators:start --only functions & tsc --watch"`。(注意最后添加了“& tsc --watch”。 (6认同)

JYe*_*Yeh 7

firebase serve似乎没有运行npm build。但是如果你看里面functions/package.json,你会看到那里已经serve有一个执行的脚本npm run build && firebase serve --only functions。所以如果你只是这样做:

cd functions
npm run serve
Run Code Online (Sandbox Code Playgroud)

您无需执行两个单独的命令即可构建和提供服务。