Это был действительно тяжелый, но захватывающий месяц или Хактоберфест. За предыдущие пару недель я испытал множество эмоций, основанных на моем опыте участия в различных проектах с открытым исходным кодом. Оставайтесь с нами, чтобы узнать больше!
Я хотел бы начать с продолжения моего предыдущего рассказа об участии в проекте Mozilla web-ext. Как только проект запустился на моей локальной машине, я решил попробовать запустить web-ext
commands, чтобы посмотреть, на что он способен. Для этого мне пришлось скачать исходный код какого-то существующего расширения для Mozilla. Таким образом, я зашел на веб-сайт дополнений Mozilla, чтобы проверить, что доступно. На самом деле для меня не имело значения, каким будет расширение, поскольку для него есть ссылка на GitHub. Итак, я выбрал тот, на который наткнулся довольно быстро:
Вы можете найти ссылку на GitHub, прикрепленную здесь.
Я был счастлив клонировать кодовую базу и зайти в папку, чтобы проверить web-ext.
Вот что я получил после запуска web-ext build:
Я не смог бы запустить команду из-за отсутствия файла messages.json
. Сейчас может показаться, что в тот момент мне все было ясно. Однако этого точно не было! Я пытался запустить команду несколько раз, удалял и повторно клонировал проект, несколько раз проходил настройку среды разработки web-ext
... Я просто продолжал думать, что это моя вина, хотя на самом деле это не так. Я предполагаю, что проект просто не тестировался с web-ext, поэтому некоторые необходимые файлы отсутствуют. В конце концов, я сдался и решил пойти на еще одно продление. В этот раз мне повезло больше и я смог запустить web-ext build
с первого раза:
«Хорошо, кажется, это работает» — подумал я. «Посмотрим, что еще у них тут есть»
Таким образом, я узнал, что обычно доступно несколько команд, таких как
build
sign
run
lint
docs
Начальная работа
Я начал исследовать структуру всех компонентов, чтобы определить, где находятся файлы, которые мне нужно будет потрогать.
Мне не потребовалось много времени, чтобы найти папку cmd
в каталоге src
, где находится ряд файлов, подозрительно названных в честь существующих web-ext
команд. Так я узнал о файле build.js
, где хранится вся логика для команды build
.
Один из других замечательных вариантов, который у нас есть, — это выполнить глобальный поиск по проекту, используя ключевое слово в VS Code:
После длительного изучения описания проблемы и базы кода я смог определить файлы, которые потенциально необходимо изменить, чтобы представить новую функцию — параметр для команды build
для установки пользовательского имени файла в расширение:
build.js
program.js
test.build.js
Настало время более внимательно изучить каждый файл и узнать, как я могу добавить новую функцию. Это был действительно долгий процесс, который занял у меня где-то неделю или около того. С рядом советов и приличным количеством времени, потраченным на отладку pn, я смог, наконец, реализовать новую опцию filename
, которая хоть как-то работала. Я решил создать PR, чтобы подтолкнуть его к проблеме, чтобы сопровождающие могли взглянуть и оставить свой отзыв. Затем мне посоветовали изменить ряд вещей, а также добавить больше функциональности в эту функцию, над чем я сейчас продолжаю работать!
Хактоберфест Том 2
Чтобы продолжать продвигать свою цель Hacktoberfest, я также выбрал ряд новых репозиториев, в которые можно внести свой вклад:
- https://github.com/AnyCordova/EAL/issues/1
- https://github.com/simo1209/PhotoDesigner/issues/3
- https://github.com/izhuravlev/z-Note/issues/5