Вы когда-нибудь отправляли PR в проект с открытым исходным кодом?

внешний интерфейс GitHub rollup.js

Это 3-й день моего участия в августовском испытании обновлений, узнайте подробности события:Испытание августовского обновления"

Вы подали PR для библиотеки или фреймворка с открытым исходным кодом?

Если нет, то сегодняшняя статья научит вас, как отправить PR в библиотеку с открытым исходным кодом.

Зачем отправлять PR в проект с открытым исходным кодом?

Это дело должно начаться несколько лет назад (2019), когда я бросал виртуальную игрушку DOM (см. предыдущую статью:🔗 Что такое виртуальный DOM?), как стандартный внешний проект, инструменты сборки, инструменты Lint и форматирование кода.

В инструментах сборки, которые я выбралRollup, я надеюсь, что анализ кода может выполняться автоматически каждый раз при его сборке, поэтому введениеRollupПлагин для:rollup-plugin-eslint.

В процессе использования этого плагина откройте для себя иWebpackсоответствующий плагинeslint-webpack-pluginЕсть еще некоторые пробелы. я используюWebpackизeslint-webpack-pluginКогда нужно только настроитьfixАтрибуты, вы можете автоматически исправить код при его сохранении.

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

при использованииrollup-plugin-eslintПри просмотре документации кажется, что эта опция не упоминается, т.е.rollup-plugin-eslintЭта функция вообще не поддерживается. Затем я поискал Проблемы, неважно, если я не искал, я был в шоке и обнаружил, что кто-то предложил это в 2016 году.Сомневаюсь 😳.

Ответ автора также очень прост, и вы можете отправить PR.

В то время, подумал я про себя, должно быть трудно реализовать эту функцию так долго. но по соседствуeslint-webpack-pluginОчевидно поддерживают эту функцию, я пойду и посмотрю, как она реализована.

Итак, я поставилeslint-webpack-pluginКод клона спустился, поискал и обнаружил, что он использовался для достижения этой функции.три строчки кода.

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

Взволнованное сердце, дрожащие руки, я пойду спешуrollup-plugin-eslintупоминается тамPR.

🔗PR:GitHub.com/try-sound/RO…

Дело в том, что автор не ожидал, что это будет так просто сделать.

Как отправить PR на GitHub?

Вышеупомянутое является мысленным процессом моего первого PR.Если вы также обнаружите, что используемая вами сейчас среда с открытым исходным кодом нуждается в оптимизации, здесь я научу вас, как отправить PR на GitHub.

Форк проектов с открытым исходным кодом

Сначала разветвите проект, который вы хотите отправить в свой собственный репозиторий.

Затем перейдите в свой собственный репозиторий и локально клонируйте проект форка.

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

переключиться на новую ветку, зафиксировать изменения, нажать на удаленный

После того, как код будет клонирован на локальный, сначала переключитесь на новую ветку, и название ветки должно быть близко к содержимому этого обновления.

$ 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

Новый пиар

Найдите соответствующий проект в своем репозитории GitHub и откройте его.Pull requestsВкладка, нажмитеNew pull requestКнопка для создания нового PR.

Затем на следующем экране выберите только что отправленную ветку и, наконец, нажмитеCreate pull requestВот и все.

После нажатия PR, который принадлежит вам, отправляется в соответствующий проект. Если все пойдет хорошо, вы можете «вмешаться» в звание участника проекта с открытым исходным кодом.

\