自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你給開(kāi)源項(xiàng)目提過(guò) PR 嗎?

開(kāi)源
你有給開(kāi)源的庫(kù)或者框架提過(guò) PR 嗎?如果沒(méi)有,那么今天的文章會(huì)教你怎么給開(kāi)源庫(kù)提 PR。

[[415495]]

你有給開(kāi)源的庫(kù)或者框架提過(guò) PR 嗎?

如果沒(méi)有,那么今天的文章會(huì)教你怎么給開(kāi)源庫(kù)提 PR。

為什么要給開(kāi)源項(xiàng)目提 PR?

這件事還得從好幾年前(2019年)說(shuō)起,那時(shí)候在折騰一個(gè)虛擬 DOM 的玩具(參考之前的文章:🔗虛擬DOM到底是什么?),作為一個(gè)標(biāo)準(zhǔn)的前端工程,構(gòu)建工具、Lint 工具、代碼格式化都是必不可少的。

在構(gòu)建工具上我選擇了 Rollup,希望每次構(gòu)建的時(shí)候都能自動(dòng)進(jìn)行代碼的 Lint,所以引入了 Rollup 的一個(gè)插件:rollup-plugin-eslint。 

[[415496]]

在使用這個(gè)插件的過(guò)程中,發(fā)現(xiàn)和 Webpack 對(duì)應(yīng)的插件 eslint-webpack-plugin 還是有一些差距的。我在使用 Webpack 的 eslint-webpack-plugin 時(shí)候,只需要配置 fix 屬性,就能夠在保存代碼的時(shí)候,自動(dòng)對(duì)代碼進(jìn)行 fix。

  1. // webpack.config.js 
  2. const ESLintPlugin = require('eslint-webpack-plugin'); 
  3.  
  4. module.exports = { 
  5.   // ... 
  6.   plugins: [ 
  7.     new ESLintPlugin({ 
  8.       fix: true
  9.       extensions: ['js''jsx'
  10.     }) 
  11. }; 

而在使用 rollup-plugin-eslint 的時(shí)候,看文檔上,好像沒(méi)有提到這個(gè)選項(xiàng),也就是說(shuō) rollup-plugin-eslint 根本不支持這個(gè)功能。然后,搜索了一下 Issues,不搜不要緊,一搜嚇一跳,發(fā)現(xiàn)有人在 2016 年就提出了這個(gè)疑問(wèn)😳。

作者的回復(fù)也很簡(jiǎn)單,歡迎提交 PR。

我當(dāng)時(shí)心想,這個(gè)功能這么久了都沒(méi)人實(shí)現(xiàn)想必很難吧。但是隔壁的 eslint-webpack-plugin 明明支持這個(gè)功能,我去看看它怎么實(shí)現(xiàn)的不就行了🐶。

于是,我就把 eslint-webpack-plugin 的代碼 clone 下來(lái)一頓搜索,發(fā)現(xiàn)它實(shí)現(xiàn)這個(gè)功能就用了三行代碼。

  1. if (options.fix) { 
  2.   await ESLint.outputFixes(results); 

激動(dòng)的心,顫抖的手,我趕忙就去 rollup-plugin-eslint 那里提了個(gè) PR。

  • 🔗PR: https://github.com/TrySound/rollup-plugin-eslint/pull/27

關(guān)鍵是,作者都沒(méi)想到這個(gè)東西居然這么簡(jiǎn)單就實(shí)現(xiàn)了。

如何在 GitHub 上提 PR?

上面是我第一次提 PR 的一個(gè)心路歷程,如果你也發(fā)現(xiàn)了你現(xiàn)在使用的什么開(kāi)源框架有待優(yōu)化的地方,這里再教大家怎么在 GitHub 上提交一個(gè) PR。

對(duì)開(kāi)源項(xiàng)目進(jìn)行 Fork

首先把你要提交 PR 的項(xiàng)目 Fork 到自己的倉(cāng)庫(kù)。

然后到自己的倉(cāng)庫(kù)中,將 Fork 的項(xiàng)目 clone 到本地。

  1. $ git clone git@github.com:Shenfq/rollup-plugin-eslint.git 

切換到新分支,提交變更,推送到遠(yuǎn)程

代碼 clone 到本地之后,先切換一個(gè)新的分支,分支名最好緊貼這次更新的內(nèi)容。

  1. $ git checkout -b feature/add-fix-option 

在新分支修改代碼:

  1. +  if (options.fix && report) { 
  2. +    CLIEngine.outputFixes(report); 
  3. +  } 

提交變更:

  1. $ git add . 
  2. $ git commit -m "feat: add options.fix" 

最后將新的分支推送到遠(yuǎn)程:

  1. $ git push --set-upstream origin feature/add-fix-option 

新建 PR

在自己的 GitHub 倉(cāng)庫(kù)中找到對(duì)應(yīng)項(xiàng)目,打開(kāi) Pull requests Tab,點(diǎn)擊 New pull request 按鈕,新建一個(gè) PR。

然后,在下面的界面中,選擇剛剛提交的分支,最后點(diǎn)擊 Create pull request 即可。

點(diǎn)擊之后,就在對(duì)應(yīng)的項(xiàng)目中提交了一個(gè)屬于你的 PR 了。如果順利的話,你就能『混』 到一個(gè)開(kāi)源項(xiàng)目貢獻(xiàn)者的頭銜。

 

責(zé)任編輯:姜華 來(lái)源: 自然醒的筆記本
相關(guān)推薦

2022-06-21 09:26:28

開(kāi)源項(xiàng)目PR

2023-12-22 08:13:39

業(yè)務(wù)review流程

2020-11-17 10:07:06

開(kāi)源starPR

2018-03-07 06:37:14

開(kāi)源項(xiàng)目源代碼云計(jì)算

2019-01-22 15:37:01

GitHub代碼開(kāi)發(fā)者

2021-08-04 09:33:22

Go 性能優(yōu)化

2015-07-30 09:22:49

開(kāi)源項(xiàng)目

2022-03-30 08:36:32

Node.jsPRHTTP

2019-05-29 13:59:03

GitHub開(kāi)源搜索功能

2020-05-15 09:50:08

GitHub開(kāi)源項(xiàng)目

2022-01-04 12:46:56

LinearB開(kāi)發(fā)者PR

2024-03-29 12:50:00

項(xiàng)目分層模型

2021-03-16 05:42:39

開(kāi)源工具技術(shù)干貨

2021-07-30 16:42:53

開(kāi)源工具開(kāi)發(fā)

2020-10-28 11:20:55

vue項(xiàng)目技

2009-06-02 09:48:36

分層架構(gòu)PetShop.NET

2015-12-25 15:16:28

開(kāi)源github開(kāi)源項(xiàng)目

2019-11-14 15:56:18

開(kāi)源技術(shù) 軟件

2017-02-27 11:06:28

Github開(kāi)源項(xiàng)目

2021-09-07 14:36:53

DevSecOps開(kāi)源項(xiàng)目
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)