这个指南在react 官方文档中是有的,如果感兴趣请移步官方,react作为开源浪潮中前端最为成功和流行的项目,它对pull request的指南也是值得学习的。

  1. 提交pull request之前,确保:
    1. fork https://github.com/facebook/react 这个仓库,以main分支为基础创建分支
    2. 在仓库的根目录下执行yarn
    3. 如果修复的bug或者添加了code,而这些内容需要添加测试,请添加测试
    4. 确保通过测试(yarn test)。提示:在开发环境下,yarn test --watch TestName很有用,(目前还没试用)。
    5. 生产环境下,请运行 yarn test --prod来进行测试
    6. 如果需要调试,请执行 yarn debug-test --watch TestName,,打开 chrome://inspect, 之后再打开 “审查”。
    7. 试用 yarn prettier来格式化代码
    8. yarn lint 来校验代码,提示: 执行yarn lintc去只检查更改过的代码,所以速度会比yarn lint 更快。
    9. 运行Flow来进行类型检查 yarn flow
    10. 请签订贡献者许可证协议: Contributor License Agreement
  2. 开发机器必要条件
    1. Node, Yarn
    2. JDK 
    3. gcc
    4. git 
  3. 开发工作流程
    1. 克隆React项目之后,执行yarn来获取依赖,之后你可以执行以下命令:
      1. yarn lint 检查代码风格
      2. yarn lintc和yarn lint 差不多,但是运行更快,因为知识检查了分支中的不同的文件
      3. yarn test 运行完整的测试 
      4. yarn test --watch 运行交互式的测试监听器
      5. yarn test --prod 在生产环境下运行测试
      6. yarn test <pattern>匹配文件名,运行响应测试
      7. yarn debug-test 和yarn test差不多,不过多了个调试器,可以代开chrome://inspect 并审查。
      8. yarn flow运行Flow进行类型检查
      9. yarn build新建涉及所有包的build文件夹
      10. yarn build react/index, react-dom/index --type=UMD生成只有React和ReactDOM的UMD版本
    2. 建议:
      1. 先运行yarn test确保项目没有引入新的问题
      2. 运行 yarn build,这会在build文件夹中生成预先构建的bundle,还会在build/packages中生成npm包
      3. 最简单的一个快速探查你做出的修改的一个方法是:先运行yarn build react/index, react-dom/index -type=UMD,之后再打开fixtures/packaging/babel-standalone/dev.html,这个文件已经使用build文件夹中的react.development.js了,所以能看你的修改是否有问题。
      4. 如果你想测试你对已有 React 项目做出的更改,你可以复制 build/node_modules/react/umd/react.development.js 和 build/node_modules/react-dom/umd/react-dom.development.js 或其它构建版本,放入你的应用中并使用这些构建版本而非稳定版。
      5. 如果你的项目用 npm,你可以从依赖中删去 react 和 react-dom,使用 yarn link 将其指向本地文件夹的 build 目录。请注意,**当请在构建时,传递 --type=NODE,而不是 --type=UMD。同时,你还需要构建 scheduler 的 package:
        1. cd ~/path_to_your_react_clone/
          yarn build react/index,react/jsx,react-dom/index,scheduler --type=NODE
          
          cd build/node_modules/react
          yarn link
          cd build/node_modules/react-dom
          yarn link
          
          cd ~/path/to/your/project
          yarn link react react-dom
  4. 未完待续