Angular Universal + Firebase 云功能部署问题

时间:2021-06-10 13:43:39

标签: firebase google-cloud-functions angularfire2 server-side-rendering angular-universal

我已经被这个问题困住了一段时间。 我的 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,但没有得到维护者的反馈。 如果有任何我遗漏的地方或者我可以做些什么来规避这个问题,请分享,并感谢任何建议。 任何建议,评论,任何事情。

1 个答案:

答案 0 :(得分:0)

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

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

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

这对我有用; 编写一个 npm 脚本来完成所有这些工作会节省时间;我不确定我的 firebase/universal 配置是否有误,或者 @angular/fire 是否存在错误。