包类型

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

应用包 (Application Packages)

应用包是指您的工作空间中将被部署的包。应用包的示例包括 Next.js、Svelte、Vite 或 CLI 应用,这些通常位于 ./apps 目录下。

最佳实践是让您的应用包成为您 包图 (Package Graph) 的“终点”,而不是被安装到您仓库中的其他包里。您的 CI/CD 流水线通常会在包和任务图的这些节点上完成。

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

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

一个例外情况的示例是,将您的应用包安装到一个处理端到端测试的包中。安装完成后,您就可以在端到端测试包中依赖您的应用包,以便它能够感知到应用程序的重新部署。

库包 (Library Packages)

库包包含您打算在整个工作空间中共享的代码。它们不能独立部署。相反,它们支持应用包来创建您仓库中最终的可部署文件。您也可以将这些包称为 内部包 (Internal Packages),它们有自己的子类型。