Ответ
В проектах часто используют:
- Bundlers (Webpack, Vite, Rollup) - для сборки и оптимизации кода (tree-shaking, code splitting)
- Babel - транспиляция современного JS для старых браузеров
- Husky + lint-staged - автоматический запуск линтера перед коммитом
- CI/CD (GitHub Actions, GitLab CI) - автоматизация тестов и деплоя
- Jest/Vitest + Testing Library - юнит и интеграционные тесты
- Cypress/Playwright - e2e тестирование
- Docker - контейнеризация для единого окружения
- Bundle Analyzer - анализ размера бандла
- Stylelint - линтинг CSS/SCSS
- 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 заставит писать вменяемые сообщения к коммитам, а не «чё-то пофиксил, хз».
Короче, без этого всего сейчас — как на рыбалку без удочки. Выглядишь идиотом, и результат, блядь, соответствующий.