Какие инструменты оптимизации и автоматизации используются в проекте кроме Linter и Prettierr

Ответ

В проектах часто используют:

  1. Bundlers (Webpack, Vite, Rollup) - для сборки и оптимизации кода (tree-shaking, code splitting)
  2. Babel - транспиляция современного JS для старых браузеров
  3. Husky + lint-staged - автоматический запуск линтера перед коммитом
  4. CI/CD (GitHub Actions, GitLab CI) - автоматизация тестов и деплоя
  5. Jest/Vitest + Testing Library - юнит и интеграционные тесты
  6. Cypress/Playwright - e2e тестирование
  7. Docker - контейнеризация для единого окружения
  8. Bundle Analyzer - анализ размера бандла
  9. Stylelint - линтинг CSS/SCSS
  10. Commitizen - стандартизация коммитов

Пример Husky в package.json:

"husky": {
  "hooks": {
    "pre-commit": "lint-staged"
  }
},
"lint-staged": {
  "*.{js,jsx,ts,tsx}": ["eslint --fix", "prettier --write"]
}

Ответ 18+ 🔞

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

Первым делом, эти ваши Bundlers — Webpack, Vite там всякие. Это ж как грузчик-оптимизатор на складе: берёт всю эту хуйню (твой код), выкидывает мусор (tree-shaking, называется), аккуратненько упаковывает (бандлит) и ещё может на паллеты разложить (code splitting), чтобы браузеру удобно было тащить. Без него — овердохуища всего скачивать, пользователь сдохнет, пока загрузится.

А этот Babel — он как переводчик с молодёжного сленга на язык дедов. Ты пишешь на современном ES2024, а он это дело превращает в такую кашу, которую и IE11, мать его, переварит. Ну, если этот зомби ещё где-то живёт.

Дальше — охрана, блядь. Husky с lint-staged. Представь: ты такой красавчик, написал код, коммит делаешь, а тебе как по ебалу — «стой, мудила, тут у тебя запятая лишняя!». Вот эта связка как раз перед коммитом автоматически проверяет и исправляет твой кривой код. В package.json прописываешь:

"husky": {
  "hooks": {
    "pre-commit": "lint-staged"
  }
},
"lint-staged": {
  "*.{js,jsx,ts,tsx}": ["eslint --fix", "prettier --write"]
}

И всё, хуй проскочишь с говнокодом в репу. Чистота, епта.

Потом идёт CI/CD — это уже конвейер на заводе. Залил код в гитаб — и понеслась: GitHub Actions или GitLab CI сами запустят тесты, соберут проект и даже на сервак выкатят. Руками нихуя не надо, красота.

Про тесты отдельный разговор. Jest или Vitest — для мелких юнитов, проверяют каждую функцию по отдельности. Testing Library — чтобы убедиться, что кнопки жмутся и форма работает. А Cypress/Playwright — это уже полный пиздец, они как пользователь-зомби: открывают браузер, тыкают куда надо и орут, если что-то не кликается. Ебать, без этого сейчас ни один нормальный прод не выпустят.

Docker — это чтобы у всех в команде окружение было одинаковое. Не будет этой песни «а у меня на маке работает!». Засунул всё в контейнер — и у тебя, у коллеги и на сервере одна и та же среда. Волшебство, блядь.

Bundle Analyzer — чтоб не было сюрпризов, что твой бандл весит как три Windows 98. Покажет наглядно, какая библиотека сколько места жрёт. Иногда открываешь — и сам от себя охуеваешь.

Ну и мелочёвка: Stylelint за CSS приглядит, Commitizen заставит писать вменяемые сообщения к коммитам, а не «чё-то пофиксил, хз».

Короче, без этого всего сейчас — как на рыбалку без удочки. Выглядишь идиотом, и результат, блядь, соответствующий.