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

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

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

Фронт: Уменьшить размер @size-limit/webpack

Для новичков, задача на неделю

Сейчас @size-limit/webpack весил 70 МБ. Большая часть размера идет от функций, которые очень редко нужны — опции --why и поддержки CSS.

Нужно вынести их в отдельные плагины @size-limit/webpack-why и @size-limit/webpack-css.

Польза: строка в резюме с PR в популярный проект.

  1. Форкнуть репозиторий Size Limit.
  2. Изучить packages/webpack и packages/size-limit, чтобы понять, как содается конфиг webpack и как работают шаги и плагины.
  3. Создать packages/webpack-why, перенести туда базовые файлы плагины из package/webpack.
  4. Перенести туда все зависимости для Statoscope.
  5. Перенести туда тесты для --why.
  6. Изменить код и текст ошибки argWithoutWebpack, чтобы он сообщал о необходимости установить @size-limit/webpack-why.
  7. В плагине при наличии опции --why менять конфиг webpack.
  8. Создать packages/webpack-css, перенести туда базовые файлы плагины из package/webpack.
  9. Перенести туда все зависимости для обработки CSS навроде css-loader, style-loader и css-minimizer-webpack-plugin.
  10. Перенести туда тесты для поддержки CSS.
  11. В плагине менять конфиг webpack, добавляю туда плагины и loader’ы для CSS.
  12. Добавить плагины в документацию.
  13. Отправить PR в проект.