Create-Universal-App(CUA)是一个自信的模板,用于使用Expo (移动)(移动), NextJS (Web), TRPC , Prisma , Tamagui (UI +样式)和Clerk (Mobile + Web Auth)创建具有移动和Web内置auth的全堆栈应用程序。演示现场直播在https://cua-demo.vercel.app/。
这是20分钟的YouTube教程,如果您的风格更多,则可以介绍所有内容!
您还可以运行npx create-t3-universal-app以启动您的项目(由Albbus)。如果您想要CUA的特定变体,请添加以下标志之一:
--with-supabase--with-drizzle-pg--with-drizzle-sql如果您在使用此操作时有任何疑问,请随时加入我们的“ Discord?”,我们都非常活跃!
此存储库是最重要的:
您的前端代码将在React Native中,这意味着您将写视图而不是DIV。由于我们特别使用tamagui,因此我们将撰写堆栈的视图。
apps/expo和apps/next实际上是空的文件夹,它们只是引用您的packages/app文件夹。您的后端代码将在packages/api中。 NextJS将在无服务器环境中运行此代码,如果您对工作的工作方式有些困惑,那么Theo的一个很好的视频就将其作为后端框架。
注意:在开始使用此模板之前,您不需要了解所有内容的详细工作。作为一个想知道每个螺栓和螺母如何工作的人,我经常被自己的完美主义“阻止”,所以我只是把它扔到那里,以防万一您对某些事情有同样的感觉。
TLDR :这是为了使事情在网络和移动设备上看起来都很漂亮,同时确实非常快速,易于使用。更详细地,塔玛古有3件事:
查看他们的文档以获取更多信息。
我喜欢tamagui的是,它同时又是尾风和daisyui,它是为具有自己的编译器和核心组件的通用应用而设计的。
可以随意使用本地风和尾风而不是tamagui,您应该能够轻松地设置物品(如果您确实为此,请为此模板做出贡献,以创建带有本机温安装的分支)。
在高水平上,店员承诺提供总体用户管理解决方案,而不仅仅是用户配置文件,禁令和设备管理诸如内置的验证。实际上,他们有一个非常相似的博览会/下一个库,内置钩子非常好!与Firebase或Supabase(例如Firebase或Supabase)相比,我个人度过了愉快的时光。
我建议您要么在铁路上旋转一个Postgres实例,要么使用Supabase,您可以携带自己的实例,因为它并不重要。
yarn install以安装软件包并构建项目。.env.example文件,删除.example并输入环境变量来正确设置环境变量。yarn db-push将我们的Prisma模式推向DB。yarn web启动Web Dev服务器。yarn native可以在iOS或Android上运行。 PS :为此,您需要在Localhost:3000上运行的Web应用程序,请记住,您的NextJS应用也是您的后端!yarn studio启动您的Prisma Studio。 PS :TRPC示例查询将显示一个example_entry ,您可以与连接的example_user一起删除该示例。yarn dev同时启动所有软件包和应用程序。为了自动化下面说明的过程,您可以使用Marketplace也可以使用的VSCODE扩展T3-CUA-Tools。它将创建文件,并为您添加必要的导入和导航代码。
packages/app/features/中创建新屏幕。packages/ui/ 。packages/api/src/router/中的新routeName.ts ,并确保将其合并到index.ts应用程序路由器中。apps/expo/app/然后创建一个新的routeName.tsx ,该tsx正在/app/features/screenName/中导入您的元素。apps/next/pages/ ,创建一个新文件夹,其中名称为您的路由和一个index.tsx ,该文件正在从/app/features/screenName/中导入您的元素。 在您在Vercel上创建了一个新项目并将其与您的GitHub存储库链接在一起后,您必须输入您的环境变量:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYDATABASE_URL 
我应该在哪里安装软件包?如果它包含本机代码,则必须将其安装到/expo文件夹中。
我怎么知道它是否包含本机代码?通常,如果它涉及与手机OS(例如API)的一些交互,以与存储,相机,陀螺仪,通知等进行交互。它涉及本机代码!