create-t3-app 贡献指南:本地开发环境搭建、CLI/文档开发流程与翻译协作实战
create-t3-app 贡献指南本地开发环境搭建、CLI/文档开发流程与翻译协作实战【免费下载链接】create-t3-appThe best way to start a full-stack, typesafe Next.js app项目地址: https://gitcode.com/gh_mirrors/cr/create-t3-app本篇技术指南以仓库根目录下的 CONTRIBUTING.md 为骨架结合仓库真实的源码、配置与脚本系统讲解如何为create-t3-app项目提交代码从 fork 仓库、用 pnpm 搭建本地 Turborepo monorepo 环境到运行dev:cli/dev:www开发 CLI 与文档站再到用changeset记录变更并提交 Pull Request最后覆盖多语言文档翻译协作的完整流程。读完本文你将具备直接上手参与该开源项目开发的完整实战能力。项目形态速览一个 Turborepo monorepocreate-t3-app是一个基于Turborepo的 monorepo 仓库根目录下的 pnpm-workspace.yaml 声明了两个工作区包packages: - cli - wwwcli即create-t3-appCLI 本体当前版本见 cli/package.json 的version字段负责交互式地引导用户搭建全栈类型安全的 Next.js 应用www官方文档站基于 Astro 构建所有语种的文档与组件都位于 www/src 下。根目录的 turbo.json 定义了跨包的pipelinebuild、dev、start、lint、lint:fix、format、format:check、clean、typecheck并配置了build阶段的输出产物与依赖关系dependsOn: [^build]这正是根目录pnpm script能一键驱动 CLI 与文档站两个包协同构建的基础。也就是说你在cli或www内做的任何改动最终都要通过 turbo 编排的根级脚本统一验证。贡献前的准备先沟通再动手原文档CONTRIBUTING.md开篇就强调了三条社区协作准则这也是所有贡献者必须先遵守的规则与社区成员交流时保持尊重、文明与开放心态在提交新 Pull Request 之前先检索已有的 issue 与修复避免重复劳动如果希望基于个人主观意见做代码改动必须先开 issue 描述要做的变更只有在维护者认可后才能提交 PR。对应的硬性前置条件是先开一个 issue描述你想解决的问题。这样做可以避免你投入时间实现一个已经被否决或本身就没必要的功能。仓库根目录的 README.md 同样提醒贡献者在开 issue 或 PR 之前务必阅读贡献指南以理解分支策略与本地开发环境。本地环境搭建全流程方式一Fork 本地克隆推荐原文档假定你可能安装了 GitHub CLIgh如果没装也可以用 Web 界面操作。核心步骤为# 1. fork 上游仓库到你的账号下 gh repo fork t3-oss/create-t3-app # 2. 将 fork 后的仓库克隆到本地替换为你自己的 GitHub 用户名 gh repo clone your-github-name/create-t3-app方式二CodeSandbox 云端开发如果不想在本地配置环境也可以通过 CodeSandbox 直接打开仓库进行文档类贡献它会自动执行全部 setup 命令适合快速上手文档翻译。安装 pnpm 与依赖本项目以pnpm作为包管理器根目录 package.json 中packageManager: pnpm10.8.0明确了推荐版本并且要求node 20.0.0。首次搭建按以下顺序执行# 安装 pnpm如尚未安装 npm install -g pnpm # 在仓库根目录安装全部依赖包括 cli 与 www 两个包的依赖 pnpm install安装时 pnpm 会读取 pnpm-workspace.yaml 中的onlyBuiltDependencies白名单如prisma/client、esbuild、sharp等允许这些依赖执行构建脚本。常用开发脚本从表格到源码验证原文档给出了一张核心开发命令速查表下面逐条对照仓库真实配置验证其行为命令说明pnpm dev:cli以 watch 模式构建并启动 CLIpnpm dev:www启动文档站开发服务器含 HMRpnpm build:cli构建 CLIpnpm build:www构建文档站pnpm build同时构建 CLI 与文档站pnpm format格式化代码pnpm lint执行代码检查pnpm lint:fix执行代码检查并自动修复pnpm check检查类型错误、格式与 lint提交前的综合检查对照根目录 package.json 的scripts段可以看到这些命令实际是 turbo 的任务调度dev:cli对应turbo --filtercreate-t3-app dev即只对cli包执行dev脚本cli/package.json 中该脚本为tsup --watch会监听源码变更并实时重新构建dev:www对应turbo --filterwww devwww包的脚本是astro dev即启动带热更新的 Astro 开发服务器HMRbuild:cli对应turbo --filtercreate-t3-app buildtsup构建build:www对应turbo --filterwww buildastro buildcheck对应turbo lint typecheck format:check manypkg check其中manypkg用于校验 monorepo 中各包的依赖版本一致性format还会额外对根目录的*.{cjs,json}文件执行 Prettier 写入。开发时请优先使用带--filter的定向命令dev:cli/dev:www避免全量构建拖慢迭代速度。理解 CLI 代码结构找到正确的改动位置CLI 的全部源码位于 cli/srccli/src/cli/index.tsCLI 入口用commander解析参数、用clack/prompts实现交互式提问项目名、语言、Tailwind、tRPC、认证方案、ORM、App Router、数据库供应商、lint 工具、import alias 等并处理--CI无交互模式与 MinTTY 非交互终端的降级逻辑cli/src/helpers脚手架流程编排如createProject、scaffoldProject、installDependencies、git初始化等cli/src/installers各可选技术栈的安装器Tailwind、tRPC、Prisma、Drizzle、NextAuth、BetterAuth、ESLint、Biome、环境变量等cli/src/utils通用工具如包管理器探测getUserPkgManager、应用名校验validateAppName、import alias 校验validateImportAlias等。如果你新增了某个可选包或安装器注意在 cli/src/installers/index.ts 的AvailablePackages类型与 cli/src/cli/index.ts 的 CI 旗标解析逻辑中同步注册否则交互选择与--CI测试矩阵会不一致。提交规范遵循 Conventional Commits提交信息必须遵循 conventional commit 规范即用feat:、fix:、chore:、docs:等前缀开头。原文档给出的提交命令模板git add file git commit -m feat/fix/chore/docs: commit message提交前可用git status检查哪些文件尚未暂存。注意观察仓库现有历史与 changeset 文件见下节以匹配提交风格。提交前自检pnpm check 与手动功能测试当你的改动完成后必须执行完整校验pnpm check如前述该命令会依次运行 turbo 调度的lint、typecheck、format:check外加manypkg check相当于一次类型错误 格式 lint 依赖一致性的总检。原文档同时强调请对改动做一次手动功能测试——例如你改了 CLI 的提问流程就应当用pnpm dev:cli实际跑一遍脚手架改了文档站就用pnpm dev:www验证页面渲染。记录行为变更changeset 工作流如果你的改动会改变 CLI 或生成应用的行为而非仅文档就必须用changeset记录变更以便发布时自动生成 changelogpnpm changeset按提示填写变更级别与描述后将生成的 changeset 文件加入 gitgit add .changeset/*.md git commit -m chore: add changeset仓库中 .changeset 目录下真实存在多个 changeset 文件如 .changeset/beige-clouds-behave.md其头部以 frontmatter 形式声明受影响的包与版本级别如create-t3-app: patch正文描述修复内容如fix #1903 #2157 #2163。新建 changeset 时保持同样的格式frontmatter 声明包名与 bump 级别正文用一句简洁的话描述变更。提交 Pull Request一切就绪后创建 PR 并填写规范的标题与正文标题同样遵循 conventional commitgh pr create --web参与多语言文档翻译除代码外项目还欢迎社区参与文档翻译。原文档指向 www/TRANSLATIONS.md其要点如下若你的语言尚无文档先将www/src/pages/en目录复制为你的语言目录如德语用de语言代码参考 ISO 639-1先提交一个草稿 PR告知社区你在翻译避免重复工作并便于收集反馈逐文件翻译内容更新已翻译文件 frontmatter 的lang属性未翻译的文件保留lang: en若目标语言是从右向左阅读如阿拉伯语、希伯来语在 frontmatter 中额外添加dir: rtl在 www/src/config.ts 的KNOWN_LANGUAGES对象中登记你的语言并按文件内注释翻译SIDEBAR与SIDEBAR_HEADER_MAP中要求的条目该配置同时被 www/src/components/navigation/LanguageSelect.tsx 用于渲染语言切换器完成后将 PR 标记为 ready for review。仓库当前已在 www/src/config.ts 的KNOWN_LANGUAGES中登记了ar、en、es、fr、ja、pt、ru、no、pl、uk、zh-hans共 11 种语言翻译 PR 通常需要 12 名审阅者如果页面已过期文档站会向访客显示过期提示看到此类页面时欢迎顺手更新。有意长期维护某语言的贡献者可以成为该语言的 code owner在相关 PR 提交时收到通知并参与评审。小结参与create-t3-app开发的完整链路可以概括为先开 issue 对齐方向 → fork clone →pnpm install搭建环境 → 在cli或www中实现改动 →pnpm check全量校验 手动功能测试 →pnpm changeset记录行为变更 → 按 conventional commit 提交并创建 PR。对于文档翻译则在草稿 PR 中按 www/TRANSLATIONS.md 的步骤逐文件推进即可。这套流程同时适用于 CLI 功能开发与多语言文档协作任何符合规范的贡献者都能沿着这条路径将改动合入上游仓库。【免费下载链接】create-t3-appThe best way to start a full-stack, typesafe Next.js app项目地址: https://gitcode.com/gh_mirrors/cr/create-t3-app创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Tampermonkey脚本实现共享账号Cookie注入:原理、实现与安全边界

Tampermonkey脚本实现共享账号Cookie注入:原理、实现与安全边界

1. 这个脚本到底解决了什么问题第一次接触共享账号这个概念,是在一个资源交流群里。当时有人发了一个链接,说“装个油猴脚本就能一键登录,不用自己注册”。我当时的反应是:这东西靠谱吗?后来自己折腾了一遍&#xff0c…

2026/9/21 12:10:40 阅读更多 →
Flutter Web 2048开发实战:AI辅助与Web渲染深度优化

Flutter Web 2048开发实战:AI辅助与Web渲染深度优化

1. Trae 是什么?它和 Flutter Web 开发 2048 有什么真实关系?先说结论:Trae 不是 Flutter 官方生态中的工具,也不是 Dart 或 Web 开发领域的标准构建链路组件。这一点必须 upfront 澄清——因为从你看到的热搜词列表里&#xff0c…

2026/9/21 8:35:28 阅读更多 →
3分钟稳定抖动的视频:Gyroflow视频防抖新手指南

3分钟稳定抖动的视频:Gyroflow视频防抖新手指南

3分钟稳定抖动的视频:Gyroflow视频防抖新手指南 【免费下载链接】gyroflow Video stabilization using gyroscope data 项目地址: https://gitcode.com/GitHub_Trending/gy/gyroflow 你刚拍完的Vlog回放时晃得像地震?Gyroflow是一款免费的开源视频…

2026/9/21 17:45:02 阅读更多 →

最新新闻

2026最新框架图片加载全解析:5个坑让项目不崩

2026最新框架图片加载全解析:5个坑让项目不崩

2026最新框架图片加载全解析:5个坑让项目不崩 刚学完语法,面对空荡荡的项目目录是不是心里发毛?很多人卡在“代码能跑,但项目搭不起来”这一步,尤其是涉及静态资源时。2026最新的开发环境对性能要求更严,图片加载看似简单,实则是前端工程化的…

2026/9/21 23:44:33 阅读更多 →
3个Koren配置死胡同,手把手保姆级教程让你告别卡半天

3个Koren配置死胡同,手把手保姆级教程让你告别卡半天

3个Koren配置死胡同,手把手保姆级教程让你告别卡半天 配置环境就卡半天,是不是你调试 Koren 项目时的常态?看着终端里密密麻麻的报错信息,心里直冒火。别慌,这篇保姆级教程专门拆解那些让你抓狂的坑。…

2026/9/21 23:44:33 阅读更多 →
3个坑点一文搞懂paperpass论文检测系统底层原理

3个坑点一文搞懂paperpass论文检测系统底层原理

3个坑点一文搞懂paperpass论文检测系统底层原理 刚拿到论文检测系统源码,或者自己部署一套类似 Paperpass 的系统,是不是瞬间懵了?屏幕上全是红色的 Exception in thread "main"…

2026/9/21 23:44:33 阅读更多 →
2026最新百词斩学英语前端实战:告别只会复制粘贴

2026最新百词斩学英语前端实战:告别只会复制粘贴

2026最新百词斩学英语前端实战:告别只会复制粘贴 看了一堆教程还是不会写项目?这是无数初学者在2026年面临的最大困境。你背下了语法,看懂了API,但一旦动手搭个像样的应用,脑子就一片空白。别慌,今天咱们不聊虚的,直接拆解 百词斩学英语…

2026/9/21 23:44:33 阅读更多 →
别被官方文档劝退 casic入门到精通 5分钟搞懂选型与实战

别被官方文档劝退 casic入门到精通 5分钟搞懂选型与实战

别被官方文档劝退 casic入门到精通 5分钟搞懂选型与实战 CSDN上搜“casic”出来的结果,一半是计算机等级考试的报名链接,另一半是那些把《计算机应用基础》教材抄了三遍的水文。最坑爹的是,很多人点开所谓的“官方指南”,直接就被几十页…

2026/9/21 23:44:32 阅读更多 →
企业级服务器选型与部署实战指南

企业级服务器选型与部署实战指南

1. 服务器选型背景与核心需求解析在数字化转型浪潮下,企业级服务器作为IT基础设施的核心组成部分,其选型直接关系到业务系统的稳定性与扩展性。济南作为山东省会城市,近年来在智能制造、政务云、金融科技等领域的信息化建设需求快速增长&…

2026/9/21 23:43:32 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →