Это 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?
Вышеупомянутое является мысленным процессом моего первого 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, который принадлежит вам, отправляется в соответствующий проект. Если все пойдет хорошо, вы можете «вмешаться» в звание участника проекта с открытым исходным кодом.
\