В NODE_ENV всегда production, как найти место инициализации или переопределить значение
Столкнулся с такой странностью первый раз. Вот есть команда, которая билдит React приложение.
"build": "DISABLE_ESLINT_PLUGIN=true NODE_ENV=production react-scripts build",
Есть код, который в зависимости от NODE_ENV подставляет разный конфиг
import { API_BASE_URL_DEV, API_BASE_URL_PROD } from "../constants/defaultURL";
export const common = {};
const dev = {
LOGGER_ENABLE: true,
API_BASE_URL: API_BASE_URL_DEV,
};
const prod = {
LOGGER_ENABLE: false,
API_BASE_URL: API_BASE_URL_PROD,
};
console.log("=========================");
console.log(process.env);
console.log("=========================");
export const config = process.env.NODE_ENV === "production" ? prod : dev;
Проблема в том, что не могу сбилдить проект с dev конфигами. Казалось бы все просто, но нет. Уже дошло до абсурда. Докинул новую команду в package (да, я понимаю, что по нормальному надо переписать то дерьмо, что сейчас есть в package и захардкоденный NODE_ENV прямо в package это вообще срань какая-то, но сейчас речь не об этом, с этим потом разберусь):
"dev-build": "DISABLE_ESLINT_PLUGIN=true NODE_ENV=develop react-scripts build",
Выполняю билд, запускаю. Открываю консоль и вижу это:
Да и по отображению сайта понятно, что подтянулись "продавские" конфиги, а не дев. Запросы идут на прод сервер)
Есть еще файлик .env, но вряд ли имеет какое-то отношение, так как там вообще вот такое содердимое
ESLINT_NO_DEV_ERRORS=true
SKIP_PREFLIGHT_CHECK=false
BABEL_ENV=development
NODE_ENV=development
Вот собственно, что я делаю не так? А, ну ествественно искал по проекту какие-либо упоминания NODE_ENV или production. Ничего не нашел. Нет идей куда копать, кроме как взять другую переменную для этой "проверки" (которую тоже надо будет конечно же переписать), но это плохой вариант. Хочется с этим разобраться. Как-то можно отследить маршрут присваиваний NODE_ENV? В общем, буду благодарен любым советам)
Ответы (1 шт):
Как выяснилось, приложение было создано с помощью create react app.
Собственно, в таком случае, NODE_ENV всегда равен production во время билда, и, например, development во время npm start. Согласно документации)

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