Acme公司
警告 这是一个正在进行中的项目,而非最终成品。
欢迎提出功能建议,但请暂时不要为bug或支持请求开启issues。
关于
本项目采用最新一代的全栈应用开发技术栈。它采用monorepo结构,使用tRPC共享API。基于Next.js 13的新app路由器和React服务器组件构建。
- 数据库查询使用Kysely作为查询构建器,同时保留Prisma作为架构管理工具。(这意味着它完全支持边缘计算!)为了保持良好的开发体验,我们使用了自定义设置,通过kysely-prisma-generator提取所有Prisma类型,然后使用后生成脚本创建一个完全类型安全的数据库客户端,使用PlanetScale的database.js。
- 本项目使用Clerk作为身份验证提供商。
- 使用shadcn/ui提供的出色UI组件。
安装
有两种方法可以使用acme-corp
启动器初始化应用。你可以将此仓库用作模板:
或使用Turbo的CLI来初始化你的项目:
npx create-turbo@latest -e https://github.com/juliusmarminge/acme-corp
快速开始
注意 db包预先配置为使用PlanetScale,并通过database.js驱动程序实现边缘计算就绪。如果你使用其他数据库,请对Kysely客户端进行必要的修改。
要运行项目,请按以下步骤操作:
1. 设置依赖项
# 安装依赖项
pnpm i
# 配置环境变量
# 根目录中有一个`.env.example`文件可供参考
cp .env.example .env.local
# 将Prisma架构推送到数据库
pnpm db:push
2. 配置Expo dev
脚本
警告 Expo应用仍然是
create-t3-turbo
的原始版本,尚未得到关注。我们将在适当的时候处理这个问题!
使用iOS模拟器
-
确保你已安装XCode和XCommand Line Tools,如expo文档所示。
注意: 如果你刚刚安装了XCode,或者更新了它,你需要手动启动模拟器一次。在根目录运行
npx expo start
,然后输入I
来启动Expo Go。手动启动后,你可以在根目录运行pnpm dev
。+ "dev": "expo start --ios",
-
在项目根文件夹运行
pnpm dev
。
使用Android模拟器
-
安装Android Studio工具,如expo文档所示。
-
在
apps/expo/package.json
中更改dev
脚本以打开Android模拟器。+ "dev": "expo start --android",
-
在项目根文件夹运行
pnpm dev
。
提示: 在单独的终端窗口运行每个应用可能更容易,这样你可以分别查看每个应用的日志。如果你希望终端具有交互性(例如访问Expo二维码),这也是必需的。你可以运行
pnpm --filter expo dev
和pnpm --filter nextjs dev
来在单独的终端窗口中运行每个应用。
3. 添加新包时
要添加新包,只需在monorepo根目录运行pnpm turbo gen init
。这将提示你输入包名,并询问是否要为新包安装任何依赖项(当然,你也可以稍后自己安装)。
生成器会设置package.json
、tsconfig.json
和index.ts
,并配置包周围所有必要的工具配置,如格式化、代码检查和类型检查。创建包后,你就可以开始构建包了。
参考
该技术栈源自create-t3-app。
这是一篇博客文章,我在其中描述了如何将T3应用迁移到这个架构。