进行 PR

如何进行开源 PR

1. 参考文档

2. Fork 项目

2.1 Pro-components

先将antd的代码 fork 一份到自己的仓库,然后 clone 下来,并添加主代码库:

# fanhualei 是我自己的账户名
git clone https://github.com/fanhualei/pro-components.git
cd pro-components
# 打开vscode: 这一步也可以不做,只不过是我的一个习惯
code .
# 添加主代码库
git remote add upstream https://github.com/ant-design/pro-components.git

2.2 ant-design-pro

先将antd-design-pro的代码 fork 一份到自己的仓库,然后 clone 下来,并添加主代码库:

# fanhualei 是我自己的账户名
# github速度很慢,要耐心等待
git clone https://github.com/fanhualei/ant-design-pro.git
cd ant-design-pro
# 打开vscode: 这一步也可以不做,只不过是我的一个习惯
code .
# 添加主代码库
git remote add upstream https://github.com/ant-design/ant-design-pro.git

3. 创建分支

按照antDesign,如果是Bug就在master分支上操作,如果是feature就在feature上操作。

但是我没有找到pro-components上的feature分支,只能在master上操作了。

3.1 拉主仓库代码

基于我们之前有添加主仓库,如果我们想与主仓库对应的分支保持同步的话,使用 git rebase 即可:

# 拉去主仓库的代码
git fetch upstream
# 同步对应分支的代码
git rebase upstream/master

3.2 创建分支

# 在本地切换分支,例如先从 master 切换至 feature等。 由于pro-components只有一个分支,所以就在master上操作了。
git checkout master
# 然后从 master 上切一个新的分支出来 ,这个是我自己的编码,可以与官方的不一直,2150是Bug号
git checkout -b master-feature-PageContainer-2150

4 熟悉工作流程

先别修改代码,先看看下载的代码好用不,运行一下测试程序,熟悉代码结构,调试一下。

4.1 运行代码

安装组件

tyarn install

运行

tyarn start

然后就出现了一个官方的界面,完全明白了,以前还想怎么联调与修改代码呢? ant 做的还是不错的。

4.2 执行测试

先测试一下,如果在错误的代码上修改,那就糟糕了。

tyarn run test
# 这一条应该在git commit时,会自动执行。 不建议执行这个代码,因为会造成很多代码被修改了
# tyarn run lint

5 修改代码

遇到两个问题:

  • 每次修改后,保存代码后,编译很慢。
  • 经常出现下面的问题,然后服务就停了,要yarn start 重新启动。
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 00007FF641FC124F napi_wrap+124431
2: 00007FF641F62A06 v8::base::CPU::has_sse+34502
3: 00007FF641F636C6 v8::base::CPU::has_sse+37766
4: 00007FF6427682DE v8::Isolate::ReportExternalAllocationLimitReached+94
5: 00007FF642750321 v8::SharedArrayBuffer::Externalize+833
6: 00007FF64261DBEC v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436
7: 00007FF642628F90 v8::internal::Heap::ProtectUnprotectedMemoryChunks+1312
8: 00007FF642625AC4 v8::internal::Heap::PageFlagsAreConsistent+3204
9: 00007FF64261B353 v8::internal::Heap::CollectGarbage+1283
10: 00007FF64261A744 v8::internal::Heap::CollectAllAvailableGarbage+196
11: 00007FF642619B9F v8::internal::Heap::AddRetainedMap+2479
12: 00007FF642641B17 v8::internal::Factory::NewRawTwoByteString+87
13: 00007FF6423A7053 v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=+4627
14: 00007FF642B9404D v8::internal::SetupIsolateDelegate::SetupHeap+567949
15: 00007FF642BA9260 v8::internal::SetupIsolateDelegate::SetupHeap+654496
16: 00007FF642B13BDC v8::internal::SetupIsolateDelegate::SetupHeap+42524
17: 00007FF642B13BDC v8::internal::SetupIsolateDelegate::SetupHeap+42524
18: 00007FF642B13BDC v8::internal::SetupIsolateDelegate::SetupHeap+42524
19: 00007FF642B13BDC v8::internal::SetupIsolateDelegate::SetupHeap+42524
20: 00007FF642B13BDC v8::internal::SetupIsolateDelegate::SetupHeap+42524
21: 00007FF642B13BDC v8::internal::SetupIsolateDelegate::SetupHeap+42524
22: 000002B864328965

我问了一下,是内存太小的问题,要 64G 内存才可以。

6. 提交代码

6.1 测试

yarn test -u

6.2 提交代码

# 我们先将自己的修改提交到自己 fork 过来的仓库相对应的分支上面去。
git add .
git commit -m "docs(compiler): add some docs for PageContainer basic demo and docs"
git push origin master-feature-PageContainer-2150

commit 遇到下面的错误

因为没有用这些开头

�💥 feat(compiler): add 'comments' option
�🐛 fix(compiler): fix some bug
�📝 docs(compiler): add some docs
�💄 UI(compiler): better styles
�🎨 chore(compiler): do something

7. 提交 pull request

根据github 的提示,提交 pull request 。 2021 年 3 月份以后,github 就很难登录了,难过。