Angular Universal + Firebase 云函数部署问题

Angular Universal + Firebase cloud functions deployment issue

我已经在这个问题上停留了一段时间了。 我的 Angular 项目版本是 9.0.3。 @angular/fire版本是6.1.4

我已按照指南操作here 该项目为我拥有的本地 Express 服务器构建和呈现。 当我使用将呈现应用程序的云功能将项目部署到 Firebase 时,会出现问题。 运行 命令 ng deploy 给出以下错误

Error: ENOENT: no such file or directory, open '/home/teebo/Development/motf/dist/motif/browser/index.html'

此问题与报告的问题有关here

我调查了一下,发现在项目的dist文件夹中,生成了一个index.original.html文件,而不是index.html

我已经打开了一个问题 here,维护者没有任何反馈。 如果我遗漏了什么或者我可以做些什么来规避这个问题,请分享,我们将不胜感激。 任何建议、评论等等。

我找到了绕过这个问题的方法。 这不是 ng deploy 问题的正确解决方案,但至少我可以部署 ssr 功能。

因为我的 dist 文件夹嵌套在另一个 dist 文件夹中(不包括 browser build 文件夹),这就是我在 运行 ng deploy 时收到错误的原因。以下是我至少能够部署的步骤。

  1. 运行 ng deploy(它会因上述错误而出错,但会构建应用程序并创建一个 dist 文件夹)。
  2. 将浏览器文件夹复制到没有它的 dist 文件夹(在我的例子中,我已将它复制到上一级的 dist 文件夹)。
  3. 通过 运行 firebase deploy --only functions:ssr 部署 ssr 函数(您可以将 functions:ssr 更改为您为函数命名的任何名称)。

这对我有用; 编写一个 npm 脚本来完成所有这一切会节省时间;我不确定我的 firebase/universal 配置是否错误或 @angular/fire.

存在错误