我尝试在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.
2条答案
按热度按时间km0tfn4u1#
这是可能的,但是你不能用云函数来服务静态资产,你需要混合firebase函数和firebase托管。
Firebase的人已经想到了这一点,你也有一个可用的实现。
请查看以下文档:
**注意:**使用云功能时,需要考虑延迟。
当一个新示例处理它的第一个请求时,响应时间会受到影响,这称为冷启动
More info
q7solyqu2#
问题是firebase托管只支持SPA,这意味着SSR不在画面中,你需要在一个不同的环境中运行SSR服务器,在那里你可以运行nextJS,或者如果你使用静态页面生成器,你可以直接上传文件,这会影响刷新内容的能力,尽管,我相信一个带有云功能和gatsby的解决方案是可行的。
Tl;DR:您无法从Firebase托管中获得SSR