next.js 使用firebase函数部署基于React的SSR应用程序时出错

83qze16e  于 2022-11-05  发布在  React
关注(0)|答案(2)|浏览(117)

我尝试在Firebase中部署我的SSR应用程序,最初是forked from,在应用程序中做了一些修改。
当我执行sudo firebase serve --only functions,hosting时,它工作正常,但当我执行firebase deploy时,它会抛出错误。
reproducible repo有一个package.json
我也使用公共目录作为我的function directory
但是,即使我正在为我的云函数使用不同的函数目录,我也会看到同样的错误。
加载用户代码时函数失败。错误消息:

Code in file index.js can't be loaded. Is there a syntax error in your code?
Detailed stack trace: TypeError: c(...) is not a function
at Object.<anonymous> (/user_code/assets/app.server.js:1:28950)
at Object.module.exports.n (/user_code/assets/app.server.js:1:29283)
...
Functions deploy had errors.
To continue deploying other features (such as database), run:
firebase deploy --except functions
Error: Functions did not deploy properly.
km0tfn4u

km0tfn4u1#

这是可能的,但是你不能用云函数来服务静态资产,你需要混合firebase函数和firebase托管。
Firebase的人已经想到了这一点,你也有一个可用的实现。
请查看以下文档:

当一个新示例处理它的第一个请求时,响应时间会受到影响,这称为冷启动
More info

q7solyqu

q7solyqu2#

问题是firebase托管只支持SPA,这意味着SSR不在画面中,你需要在一个不同的环境中运行SSR服务器,在那里你可以运行nextJS,或者如果你使用静态页面生成器,你可以直接上传文件,这会影响刷新内容的能力,尽管,我相信一个带有云功能和gatsby的解决方案是可行的。
Tl;DR:您无法从Firebase托管中获得SSR

相关问题