![translation](https://cdn.durumis.com/common/trans.png)
Это сообщение переведено AI.
Выбрать язык
Текст, резюмированный ИИ durumis
- В Next.js .env настраивается во время сборки, но иногда необходимо настроить переменные среды в зависимости от среды выполнения (local, dev, qa, prod) после сборки.
- Пользователи Windows не могут использовать существующие скрипты на основе Unix, поэтому им необходимо установить cross-env, чтобы создать скрипт, работающий как в Windows, так и в Unix.
- Мы добавили cross-env в команды start и dev для настройки переменных среды и сделали скрипт более кратким, чтобы повысить читабельность.
В Next.js .env встраивается во время сборки.
Но иногда есть потребность в настройке переменных среды не во время сборки, а при запуске собранного образа.
Обычно это связано с использованием различных конфигураций для локальной разработки, среды разработки, QA и production.
Как же нам это сделать?
В большинстве случаев подход похож на описанный в этой статье:
Однако, эта статья игнорирует Windows.
В скрипте package.json используется синтаксис Unix.
Это означает, что пользователи Windows, которые не используют грязный Unix, не смогут использовать этот скрипт.
Поэтому пользователи Windows должны позаботиться о пользователях Unix и добавить скрипт, который будет работать на обоих операционных системах.
Решение простое.
Просто добавьте скрипт, который выполняет ту же задачу, что и этот синтаксис.
Установите cross-env с помощью этой команды.
И измените команду запуска, упомянутую выше, следующим образом:
Однако скрипт слишком длинный, поэтому его сложно читать, и его нужно добавить в команду dev.
{
"dev": "npm run _env:-local && next dev",
"dev:dev": "npm run _env:dev && next dev",
"start": "npm run _env:-local && next start",
"_env:-local": "cross-env-shell node ./utils/cli.js next-env -e $APP_ENV",
"_env:dev": "node ./utils/cli.js next-env -e dev"
Поэтому я решил организовать его следующим образом.