SuperStarter是一个monorepo,这意味着它在一个仓库中包含多个包。这是现代Web应用程序的常见模式,因为它允许您在应用程序的不同部分之间共享代码,并将它们一起管理。

该monorepo由Turborepo管理,这是一个用于管理monorepo的工具。它提供了一种简单的方式来管理单个仓库中的多个包,并且专为现代Web应用程序设计。

应用程序

SuperStarter包含多个构成您项目的应用程序。每个应用程序都是一个独立的应用程序,可以单独部署。

虽然您可以选择在您选择的子域上运行这些应用程序,但每个页面上都列出了推荐的子域。请记得将它们添加到您的环境变量中的NEXT_PUBLIC_APP_URLNEXT_PUBLIC_WEB_URLNEXT_PUBLIC_API_URL下。

每个应用程序应该是独立的,不依赖于其他应用程序。它们应该在应用程序的根目录下有一个env.ts文件,用于组合来自其所依赖包的环境变量。

SuperStarter包含多个在monorepo中共享的。这些包的目的是将共享代码与主应用程序隔离,使其更易于管理和更新。

此外,它使得更容易为应用程序的不同部分交换实现。例如,database包包含与数据库相关的所有内容,包括模式和数据迁移。这使我们能够轻松地更换数据库提供程序或ORM,而不会影响应用程序的其他部分。

每个包应该是独立的,不依赖于其他包。它们应该导出应用程序所需的一切——中间件、钩子、组件,甚至环境变量

边界

next-forge使用Turborepo的边界来确保Turborepo功能正常工作,通过检查包管理器工作区违规。

您可以运行pnpm run boundaries来检查任何违规行为。