gpt4 book ai didi

firebase - 使用 monorepo 部署到 Firebase 函数

转载 作者:行者123 更新时间:2023-12-03 17:24:57 25 4
gpt4 key购买 nike

根据 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用于创建指向 core 的符号链接(symbolic link)的功能 functions 中的工作区和 web根据 twizStackoverflow answer .
core包也作为依赖项存在于 functions 中和 web :
"dependencies": {
"firebase-monorepo-core": "*"
}

当其中任何一个在本地运行时都没有问题,实际上是 web 的部署打包到 Firebase 托管工作正常。但是,部署 functions打包到 Firebase 函数会引发错误:

Firebase functions deployment error

我创建了一个 Github 存储库 https://github.com/cjmyles/firebase-monorepo来证明这一点,以及由此产生的 web工作区可以在 https://fir-monorepo.firebaseapp.com查看.

我可以得到 functions如果我要部署的包 yarn pack core工作区并将其作为 tarball 引用到 package.json 中文件,但我真的不喜欢那个解决方案,它需要更多的开销来自动化它。

任何建议将不胜感激以解决此问题。

最佳答案

一种可能的解决方案是使用 Lerna。
然后您可以发布您的 core包到私有(private) GitHub 包并使用 Lerna 创建指向 core 的符号链接(symbolic link)本地开发包。

关于firebase - 使用 monorepo 部署到 Firebase 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61015842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com