本文档为 React Router 项目的贡献者提供了全面的信息。它涵盖了开发环境设置、编码标准、拉取请求流程以及如何有效地为 https://github.com/remix-run/react-router 项目的代码库做出贡献。
React Router 被组织成一个包含多个软件包的 monorepo,这些软件包协同工作,为 React 应用程序提供路由功能。
来源:integration/package.json, pnpm-lock.yaml
要为 React Router 做出贡献,您需要安装以下工具
来源:pnpm-lock.yaml
React Router 使用 PNPM workspaces 来管理 monorepo。大多数开发任务都通过 PNPM 脚本处理。
pnpm test 来确保所有测试都通过pnpm build 构建包,以确保所有内容都能正确编译来源:integration/package.json, pnpm-lock.yaml
React Router 遵循特定的编码标准,以保持代码库的一致性
整个代码库都用 TypeScript 编写,以确保类型安全并提供更好的开发人员体验。
该项目使用以下配置文件
.eslintrc.js - ESLint 配置.prettierrc - Prettier 配置来源:pnpm-lock.yaml
测试是为 React Router 做出贡献的关键部分。该项目使用多种测试方法
单元测试使用 Jest 和 React Testing Library 编写,以确保每个组件和实用函数都能按预期工作。
集成测试用于验证系统的不同部分是否能正确协同工作。React Router 拥有广泛的集成测试,可以模拟真实世界的使用场景。
来源:integration/package.json, pnpm-lock.yaml
提交 PR 后
React Router 遵循行为准则,以确保一个受欢迎且包容的社区。所有贡献者都必须遵守。
React Router 拥有一系列不断增长的贡献者,他们帮助改进了该项目。您可以在 contributors.yml 文件中找到所有贡献者。
来源:contributors.yml
React Router 使用 PNPM 进行包管理。依赖项定义在 package.json 文件中,并锁定在 pnpm-lock.yaml 文件中。
添加新依赖项时
来源:pnpm-lock.yaml
React Router 使用语义化版本控制方法和 Changesets 来管理版本和生成变更日志。
当进行需要包含在下次发布中的更改时
pnpm changeset 来创建一个新的 changeset发布流程由维护者处理,包括
React Router 包含几个用于测试和开发的 Playground 应用程序
这些应用程序对于在真实环境中测试您的更改非常有用。
来源:pnpm-lock.yaml
为 React Router 贡献力量是一种有益的方式,可以改进被数百万开发人员使用的工具。通过遵循这些指南,您可以帮助维护项目的质量和可靠性,同时增强其功能。
请记住,每一项贡献,无论是代码、文档还是 bug 报告,都对项目的成功至关重要。感谢您对为 React Router 做出贡献的兴趣!