【发布时间】:2020-07-15 20:33:22
【问题描述】:
根据Firebase Functions with Yarn workspaces,我想使用 Yarn Workspaces 将 monorepo 部署到 Firebase。我可以成功地将“网络”方面部署到 Firebase 托管,它引用了一个共享的“核心”工作区。但是,尝试对 Firebase Functions 上的“函数”工作区执行相同操作会失败。
我正在使用具有以下文件夹结构的 Yarn Workspaces:
packages/
core/ // name: firebase-monorepo-core: custom core package
functions/ // name: firebase-monorepo-functions: firebase functions package
web/ // name: firebase-monorepo-web: react package
这些已在根package.json 文件中配置:
"workspaces": {
"packages": [
"packages/*"
],
"nohoist": [
"**/firebase-monorepo-core"
]
}
为了在 Firebase 中启用 Yarn 工作区(并因此分享我的 core 包),我使用 nohoist 功能在 functions 和 web 中创建指向 core 工作区的符号链接。 twiz的Stackoverflow answer。
core 包也作为依赖项存在于 functions 和 web 中:
"dependencies": {
"firebase-monorepo-core": "*"
}
当其中任何一个在本地运行时都没有问题,实际上将 web 包部署到 Firebase 托管工作正常。但是,将 functions 包部署到 Firebase 函数会引发错误:
我创建了一个 Github 存储库 https://github.com/cjmyles/firebase-monorepo 来演示这一点,生成的 web 工作区可以在 https://fir-monorepo.firebaseapp.com 查看。
如果我 yarn pack core 工作区并将其作为压缩包引用到 package.json 文件中,我可以部署 functions 包,但我真的不喜欢那个解决方案,它需要更多自动化它的开销。
如有任何建议可以解决此问题。
【问题讨论】:
-
嘿,你解决过这个问题吗?
-
也想知道如何/如果你解决了它
标签: firebase google-cloud-functions yarn-workspaces