Vue можно установить process.env.NODE_ENV - PullRequest
0 голосов
/ 07 февраля 2020

Относительно режимов и переменных среды, как описано здесь

https://cli.vuejs.org/guide/mode-and-env.html#modes

Я был довольно смущен, почему не могу установить следующую переменную на mock например. Как видно из документа, это будет mode , который вы передадите!

process.env.NODE_ENV

Я создал следующую командную строку server-mock в моем пакете . json следующим образом

"serve-mock": "vue-cli-service serve --mode mock"

Но когда я запускаю

npm run server-mock

process.env.NODE_ENV по-прежнему имеет значение development а не издеваться . Я должен установить это в файле .env.mock ? Я предположил, что он будет установлен на основе режима, который был передан как mock ?

1 Ответ

1 голос
/ 07 февраля 2020

Vue Команда CLI serve использует опцию mode для загрузки переменных окружения из файлов режима c .env. Он также устанавливает NODE_ENV в один из трех стандартных режимов (test, development или production), только если он еще не установлен. Однако, если указанный режим не является стандартным (как в случае mock), Vue CLI по умолчанию равен development.

Таким образом, вы можете установить NODE_ENV=mock внутри .env.mock, чтобы обойти настройку NODE_ENV, упомянутую выше.

В качестве альтернативы, вы можете установить NODE_ENV в командной строке сценария NPM в * nix shell:

{
  "scripts": {
    "serve-mock": "NODE_ENV=mock vue-cli-service serve"
  }
}

Для кроссплатформенного решения (включая Windows) вы можете установить cross-env (как рекомендуется в комментариях) и отредактировать скрипт NPM следующим образом:

{
  "scripts": {
    "serve-mock": "cross-env NODE_ENV=mock vue-cli-service serve"
  }
}
...