最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 你给开源项目提过 PR 吗?

    正文概述 掘金(Shenfq)   2021-08-05   583

    这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战”

    你有给开源的库或者框架提过 PR 吗?

    如果没有,那么今天的文章会教你怎么给开源库提 PR。

    为什么要给开源项目提 PR?

    这件事还得从好几年前(2019年)说起,那时候在折腾一个虚拟 DOM 的玩具(参考之前的文章:?虚拟DOM到底是什么?),作为一个标准的前端工程,构建工具、Lint 工具、代码格式化都是必不可少的。

    在构建工具上我选择了 Rollup,希望每次构建的时候都能自动进行代码的 Lint,所以引入了 Rollup 的一个插件rollup-plugin-eslint

    你给开源项目提过 PR 吗?

    在使用这个插件的过程中,发现和 Webpack 对应的插件 eslint-webpack-plugin 还是有一些差距的。我在使用 Webpackeslint-webpack-plugin 时候,只需要配置 fix 属性,就能够在保存代码的时候,自动对代码进行 fix。

    // webpack.config.js
    const ESLintPlugin = require('eslint-webpack-plugin');
    ​
    module.exports = {
      // ...
      plugins: [
        new ESLintPlugin({
          fix: true,
          extensions: ['js', 'jsx']
        })
    };
    ​
    

    你给开源项目提过 PR 吗?

    而在使用 rollup-plugin-eslint 的时候,看文档上,好像没有提到这个选项,也就是说 rollup-plugin-eslint 根本不支持这个功能。然后,搜索了一下 Issues,不搜不要紧,一搜吓一跳,发现有人在 2016 年就提出了这个疑问?。

    你给开源项目提过 PR 吗?

    作者的回复也很简单,欢迎提交 PR。

    你给开源项目提过 PR 吗?

    我当时心想,这个功能这么久了都没人实现想必很难吧。但是隔壁的 eslint-webpack-plugin 明明支持这个功能,我去看看它怎么实现的不就行了?。

    于是,我就把 eslint-webpack-plugin 的代码 clone 下来一顿搜索,发现它实现这个功能就用了三行代码。

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

    激动的心,颤抖的手,我赶忙就去 rollup-plugin-eslint 那里提了个 PR。

    你给开源项目提过 PR 吗?

    关键是,作者都没想到这个东西居然这么简单就实现了。

    你给开源项目提过 PR 吗?

    如何在 GitHub 上提 PR?

    上面是我第一次提 PR 的一个心路历程,如果你也发现了你现在使用的什么开源框架有待优化的地方,这里再教大家怎么在 GitHub 上提交一个 PR。

    对开源项目进行 Fork

    首先把你要提交 PR 的项目 Fork 到自己的仓库。

    你给开源项目提过 PR 吗?

    然后到自己的仓库中,将 Fork 的项目 clone 到本地。

    你给开源项目提过 PR 吗?

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

    切换到新分支,提交变更,推送到远程

    代码 clone 到本地之后,先切换一个新的分支,分支名最好紧贴这次更新的内容。

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

    在新分支修改代码:

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

    提交变更:

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

    最后将新的分支推送到远程:

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

    新建 PR

    在自己的 GitHub 仓库中找到对应项目,打开 Pull requests Tab,点击 New pull request 按钮,新建一个 PR。

    你给开源项目提过 PR 吗?

    然后,在下面的界面中,选择刚刚提交的分支,最后点击 Create pull request 即可。

    你给开源项目提过 PR 吗?

    点击之后,就在对应的项目中提交了一个属于你的 PR 了。如果顺利的话,你就能『混』 到一个开源项目贡献者的头衔。

    \


    起源地下载网 » 你给开源项目提过 PR 吗?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元