Нам нужны твои мозги

Хотите расти как разработчик и найти крутую работу? Не протирайте штаны — займитесь Open Source проектами. Так легче всего попасть в лучшие команды разработчиков и положить себе в резюме настоящий проект, вместо нелепых «примеров кода». Но найти подходящий проект для участия сложно. Начинаются лень и отговорки, а за ними — отсутствие профессионального роста, критики по-настоящему крутых программистов, уныние и застой.

На Cult of Martians мы собираем интересные задачи для современных веб-программистов. Можно выбрать подходящую по сложности, продолжительности и специализации. Задачи не выдуманы «из воздуха» — каждая решает насущную проблему, и решить ее можно через создание нового Open Source проекта или улучшение существующего. Решайте задачи, прокачивайтесь, присылайте решение на оценку. Лучших могут пригласить к себе на работу компании, программистам которых понравится ваше решение.

Фронт: Создать инструмент clean-publish

Для продвинутых, задача на неделю

В современном JavaScript даже у маленького проекта есть куча инструментов разработки — хотя бы линтер и тесты. Для каждого инструмента надо иметь настройки. Иногда настроек получается больше, чем кода самой библиотеки.

Можно держать все эти настройки в отдельных файлах — тогда в папке проекта будет много файлов. Например, из-за длинного списка файлов README на GitHub будет далеко после большого списка файлов.

Можно перенести настройки в package.json, но тогда они окажутся в npm-пакете, что увеличит его размер.

Можно решить проблему, если создать инструмент clean-publish. Он будет копировать файлы проекта во временную папку, убирать лишнее из package.json и вызывать npm publish на временной папке.

Польза: получить больше опыта в JavaScript.

  1. Создать новый npm-проект с именем clean-publish.
  2. В проекте надо создать исполняемый файл clean-publish.js и прописать его в поле bin в package.json.
  3. В пакете будет список ненужных полей из package.json. Например, eslintConfig и jest. Также можно убирать devDependencies и все scripts кроме нужных для npm (например, postinstall).
  4. Можно добавить опцию, чтобы указывать дополнительные поля для удаления.
  5. Нужно убедиться, что при вызове npm publish его цветной вывод идет в вывод clean-publish.