包类型

在 Turborepo 中,我们讨论两种类型的包:

应用程序包

应用程序包是工作空间中将从你的工作空间部署的包。应用程序包的例子包括 Next.js、Svelte、Vite 或通常位于 ./apps 目录中的 CLI 应用程序。

最佳实践是你的应用程序包是package-graph的"终点",不会被安装到仓库的其他包中。你的 CI/CD 流水线通常会在包和任务图的这些节点处完成。

将应用程序包安装到另一个包中

在极少数情况下,你可能需要将应用程序包安装到另一个包中。这应该是例外情况。如果你发现经常这样做,你可能需要重新思考你的包结构。

这个规则的一个例外示例是将你的应用程序包安装到处理端到端测试的包中。安装后,你可以在端到端测试包中依赖应用程序包,这样它就能感知到应用程序的重新部署。

库包

库包包含你打算在工作空间中共享的代码。它们不能独立部署。相反,它们支持应用程序包从你的仓库创建最终的可部署内容。你也可以将这些包称为内部包,它们有自己的子类型。