尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Rematch 贡献指南:从 monorepo 环境搭建到 PR 提交与文档开发的完整工作流

发布时间:2026/9/25 6:54:27

资讯中心
01
ARTICLE

Rematch 贡献指南:从 monorepo 环境搭建到 PR 提交与文档开发的完整工作流

Rematch 贡献指南:从 monorepo 环境搭建到 PR 提交与文档开发的完整工作流
前端【免费下载链接】rematchThe Redux Framework项目地址https://gitcode.com/gh_mirrors/re/rematch点击查看免费下载本篇指南基于 CONTRIBUTING.md 整理面向准备为 rematchThe Redux Framework提交代码或文档的开发者。文中将完整覆盖官方贡献流程如何搭建基于 Lerna Yarn Workspaces 的 monorepo 开发环境、必须遵守的语义化提交规范、build/test/lint 三重验证要求、沙盒示例应用的使用方法以及 Docusaurus 文档站点的本地开发与检查方式帮助你在提交第一个 Pull Request 前把工程链路跑通。贡献理念让每个人都能迈出第一步rematch 官方在 CONTRIBUTING.md 开篇明确了项目演进哲学库的演化不应被任何一个人的时间所阻塞因此项目鼓励大量“浅层贡献者”shallow contributors参与以缓解“项目需要更新却没有人有权力去做”的困境。围绕这一理念官方提供了两类机制good first step issues这类 issue 通常是非关键的、边界清晰的问题成熟贡献者会刻意避开它们为新贡献者留出空间使第一次 PR 不会“踩到别人的地盘”讨论渠道分工所有技术讨论应留在 GitHub Issues 中具体 PR 讨论、新 API 想法等都属于此类其他非技术讨论则放在官方 Discord 社区。官方还说明若存在无法在公开 issue 中讨论的问题维护者 Sergio Moreno 的 GitHub 主页上有可联系的邮箱。需要特别注意的是所有 rematch 仓库均受 代码行为准则Code of Conduct 约束贡献前应先阅读该文件发现违规行为时也应协助执行。环境搭建为什么必须使用 yarnrematch 是一个典型的 monorepo根目录 package.json 通过workspaces字段声明了工作区成员workspaces: [ packages/*, website, examples/all-plugins-react-ts, examples/hooks-react-ts, examples/count-react-ts ]从源码结构看packages/*对应 core、immer、loading、persist、select、typed-state、updated 等核心包与插件包website是 Docusaurus 文档站点内部包名为rematch-docs见 website/package.json三个examples/*则是 TypeScript 沙盒示例应用。monorepo 的编排由 lerna.json 中的useWorkspaces: true与npmClient: yarn配置完成——这也是 CONTRIBUTING.md 反复强调“永远使用 yarnnpm install 不会工作”的原因依赖安装与联调依赖 yarn workspaces 的符号链接机制npm 无法正确解析工作区内的本地包引用。官方给出的环境搭建步骤非常直接# 1. 安装全部依赖必须使用 yarn yarn install # 2. 首次构建用于生成类型声明等产物 yarn build # 3. 启动 live-reloading 测试套件等价于 lerna run test --stream -- --watch yarn watch之后直接在packages/core/src/、packages/loading/src/等包内目录CONTRIBUTING.md 原文写作packages/core|loading|any-plugin/src/对应当前仓库的packages/包名/src/结构中编辑代码即可。几点与仓库实际配置对应的说明根脚本中build实际执行lerna run build --ignore rematch-docs即对所有包执行各自的构建脚本。以 packages/core/package.json 为例rematch/core的 build 使用dts build --format cjs,esm,umd同时产出 CommonJS、ESM 与 UMD 三种格式及类型声明postinstall钩子会执行husky install安装 Git hookslint-staged配置会在提交前对packages/**/*.{ts,tsx,jsx,js,json,md,mdx}执行 ESLint 检查见 package.json 中lint-staged字段全局测试的 Jest 配置非常轻量jest.config.js 仅声明了setupFiles: [rootDir/testSetup.js]而 testsetup.js 的作用是在测试运行期间将unhandledRejection直接抛出为异常保证异步错误不会在测试中被静默吞掉——这对编写 effects 相关测试尤其重要。此外官方还提供 Gitpod 一键在线开发环境点击“Open in Gitpod”按钮即可自动完成仓库克隆、依赖安装并运行yarn watch与yarn docs免去本地环境准备。代码贡献的完整工作流CONTRIBUTING.md 将一次代码贡献总结为 12 步以下是完整流程其中分支与提交环节补充了与仓库配置对应的细节选定 issue 或功能确认没有其他人正在处理避免重复劳动Fork 后克隆git clone https://github.com/YOUR_USERNAME/rematch.git创建有意义的分支git checkout -b fix-something安装依赖在项目根目录运行yarn install再次强调必须使用 yarn因为 monorepo 依赖 yarn workspaces修改并暂存提交git add与git commit提交信息必须语义化遵循 Conventional Commits 规范。这一要求并非纸面规定——根 package.json 中集成了commitlint/cli与commitlint/config-conventionalcommitlint: { extends: [commitlint/config-conventional] }不符合规范的提交信息会被自动拦截验证测试通过依次运行yarn build、yarn test、yarn lint。对照根脚本可以看到test执行lerna run test每个包内部为dts testlint执行lerna run lint推送分支git push -u origin your-branch-name向上游 rematch 仓库提交 Pull Request填写描述性的标题并简要说明变更内容等待维护者 review按建议修改直至合入跳一支庆祝的舞。如何验证你的修改为了让开发流程更顺畅仓库内置了自动引用本地版本 rematch 的沙盒 React 应用。CONTRIBUTING.md 指出当你在packages/.../core/src/下做出任何修改沙盒应用会自动反映这些变更重新加载 dist 只需运行yarn build。从workspaces配置看实际参与联动的沙盒是 examples/all-plugins-react-ts、examples/hooks-react-ts 与 examples/count-react-ts 三个 TypeScript 示例其中 all-plugins-react-ts 同时演示了带 Hooks 与不带 Hooks 的两种用法src/AppWithHooks.tsx与src/AppWithoutHooks.tsx并覆盖了 cart、players、settings 等 model见 examples/all-plugins-react-ts/src/models。仓库中还有 count-react、loading-react、persist-react、select-react、updated-react、multi-react、nextjs-blog、gatsby-example 等更多示例见 examples/README.md可以作为修改后手动验证行为的表现参考。文档贡献流程文档站点是仓库中的独立工作区website基于 Docusaurus 2.0beta内容源在 docs/ 目录含 api-reference、plugins、migrating、recipes 等章节博客文章位于 blog/。官方给出的文档贡献步骤为# 1. 项目根目录安装依赖 yarn install # 2. 启动文档站等价于 lerna run start --scope rematch-docs --stream yarn start:docs # 3. 自由编辑 docs/ 下的文档 # 4. 检查 prettier 与 eslint等价于 lerna run lint --scope rematch-docs --stream yarn lint:docs # 5. git add、git commit 并推送到新分支提交 PR对照 website/package.json 可以看到文档站的 lint 由 ESLint**/*.{js,jsx,ts,tsx}执行Markdown 则由 Prettier 管理prettier-docs脚本对**/*.md写入格式化lint-staged会在提交前对*.{js,jsx,ts,tsx}执行eslint --fixprettier --write、对*.{md,mdx}执行prettier --write。此外文档站还使用docusaurus-preset-shiki-twoslash提供代码高亮与 TypeScript 实时检查并在website/src/plugins/remark-npm2yarn.js中用 remark 插件把示例里的 npm 命令自动转成 yarn——这与全文强调“只用 yarn”的约定是一脉相承的。质量护栏从提交到发布的工程约束CONTRIBUTING.md 没有单独展开发布章节但从仓库配置可以确认若干与贡献质量直接相关的约束便于在开发时就对齐标准体积预算根 package.json 配置了size-limit对各包 UMD 产物设定上限如rematch/core生产包不超过 2 kB、persist 不超过 200 B、select 不超过 500 B 等提交体积显著增加的代码前可以运行yarn size-build自查发布分支限制lerna.json 中publish.allowBranch只允许main、master、next三个分支发布且 CHANGELOG、examples、Markdown 等文件变更不会触发版本变动版本管理根脚本version:latest*/release:latest系列使用lerna version/publish配合 conventional commits 自动完成版本推导与 GitHub Release 创建。以上机制意味着普通贡献者只需关注yarn install→ 修改 →yarn build yarn test yarn lint→ 规范提交 → PR 这条主线版本与发布由维护者统一处理。小结rematch 的贡献链路可以概括为三句话环境monorepo 基于 Lerna Yarn Workspaces永远用yarn install起步首次yarn build生成类型yarn watch进入热重载测试循环代码遵循 Conventional Commitscommitlint 强制提交前通过yarn build、yarn test、yarn lint三重验证可用examples/下的沙盒应用直观验证行为文档yarn start:docs本地预览 Docusaurus 站点yarn lint:docs检查格式后提交 PR。按 CONTRIBUTING.md 的表述官方为新手特意预留了边界清晰的 good first step issues 和完整的在线开发环境第一次贡献的重点是把上述链路完整跑通再逐步参与更深的功能设计讨论GitHub issues与社区交流Discord。赞分享前端【免费下载链接】rematchThe Redux Framework项目地址https://gitcode.com/gh_mirrors/re/rematch点击查看免费下载相关推荐Wagmi 仓库贡献开发指南从环境搭建到提交 PR 的完整工作流Wagmi 仓库贡献开发指南从环境搭建到提交 PR 的完整工作流 Wagmi 是一个为 Ethereum 应用提供响应式原语Reactive primiti区块链Web3前端Firebase iOS SDK 贡献开发指南从开发环境搭建到提交 PR 的完整工作流Firebase iOS SDK 贡献开发指南从开发环境搭建到提交 PR 的完整工作流 本篇指南以 Firebase iOS SDK 仓库的 CONTRIBU移动开发后端认证鉴权Redwood 贡献者实战指南从本地开发环境搭建到提交 PR 的完整工作流Redwood 贡献者实战指南从本地开发环境搭建到提交 PR 的完整工作流 导读 本文基于 docs/docs/contributing walkthroug后端前端Web框架开发工具上一篇Quasar与容器化部署在Docker和Kubernetes中的最佳实践 下一篇Santa文件访问授权如何精细控制敏感文件操作权限创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。