Ответ
В разработке я чаще всего работаю с такими окружениями:
- Development - локальная среда для разработки. Использую Webpack Dev Server, Hot Module Replacement, source maps. Пример настройки в
webpack.config.js:
mode: 'development',
devtool: 'eval-source-map'
-
Staging - максимально приближено к production, но с debug-логированием. Часто разворачивается на тестовых серверах.
-
Production - минифицированный код, оптимизированные ассеты. В вебпаке:
mode: 'production',
optimization: {
minimize: true
}
Также использую .env файлы для хранения переменных окружения, которые подключаются через dotenv-webpack или аналоги.
Ответ 18+ 🔞
А, ну это ж классика, блядь! Каждый раз одно и то же, как будто в первый раз. Сидишь, сука, настраиваешь эти окружения, а потом нихуя не работает и думаешь: «Я что, идиот?». Нет, просто вебпак — пидарас шерстяной.
Смотри, сюда, я тебе по полочкам разложу, как у меня в голове, а то там бардак, как в коммуналке.
Первое, Development. Это типа моя берлога, где я царь и бог. Тут можно всё: оставить console.log('хуйня'), source maps чтобы дебажить, и дев-сервер, который перезагружает страницу, если я чихну. Конфиг — проще пареной репы:
mode: 'development',
devtool: 'eval-source-map'
Всё летает, всё горит. Красота, блядь. Пока не накосячишь и всё не накроется медным тазом.
Дальше идёт Staging. Вот это уже, сука, серьёзно. Как генеральная репетиция перед выступлением на публике. Код уже почти как продакшен, но я оставляю себе лазейки — debug-логи, чтобы если что-то пойдёт по пизде, можно было понять, где именно. Разворачиваю это добро на тестовом сервере и молюсь, чтобы не прилетело от тимлида.
И наконец, Production. А вот тут, ёпта, начинается магия, или пиздец — как повезёт. Включаем режим максимального параноика:
mode: 'production',
optimization: {
minimize: true
}
Всё минифицируется, оптимизируется, сжимается так, что твоя бабушка не узнает. Никаких лишних логов, только хардкор. Один неправильный импорт — и привет, белый экран, волнение ебать.
А ещё, блядь, эти ваши .env файлы. Хранишь там ключи, пароли, урлы API. Подключаешь через какую-нибудь либу вроде dotenv-webpack, и молишься, чтобы не закоммитил этот файл в репозиторий случайно. А то потом вся команда узнает, что твой пароль от базы — 12345. Удивление пиздец.
Вот и вся философия. Три режима, три жизни. Сначала ты художник в дев-среде, потом подопытный кролик на стейджинге, а в продакшене — просто мясо, которое надеется, что ничего не упадёт.