Как переписать переменные окружения в Vue-cli3? - PullRequest
0 голосов
/ 26 октября 2018

Предположим, у нас есть сборка проекта Vue.js с Vue-cli3, package.json:

{ "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", ... }

Кроме того, у нас есть план по переносу нашего проекта в публичный репозиторий на GitHub, поэтому нам нужны разные переменные среды для публичного репо и для локальной разработки. Vue-cli 3 дает нам modes: https://cli.vuejs.org/guide/mode-and-env.html#modes

У меня есть такие файлы:

  • .env
  • .env.development
  • .env.production
  • .env.local
  • .env.development.local
  • .env.production.local

Содержание .env:

NODE_ENV=production VUE_APP_PATH=http://website.com/ VUE_APP_API_ROUTE=api/v1/

Содержание .env.development:

NODE_ENV=development VUE_APP_PATH=http://dev-website.com/

Содержимое .env.development.local:

NODE_ENV=development VUE_APP_PATH=http://localhost:8080/

Когда я сделаю npm run serve, я ожидаю, что process.env.VUE_APP_PATH будет равно http://localhost:8080/, но, к сожалению, оно все равно = http://dev-website.com/. Таким образом, проблема заключается в том, что переменные из локальных файлов env (т.е. .env.development.local) не перезаписаны, существуют из другого файла env (т.е. .env.development).

Как я могу использовать этот подход vue-cli для перезаписи необходимых переменных? Документация говорит о приоритете: An env file for a specific mode (e.g. .env.production) will take higher priority than a generic one (e.g. .env)., но с файлами .local он не работает.

1 Ответ

0 голосов
/ 14 марта 2019

Вы можете передать опцию --mode в скрипте npm. Итак, в вашем случае вы можете захотеть, чтобы скрипт serve выглядел так:

vue-cli-service serve --mode development.local

Если вы хотите проверить работу нелокальной конфигурации разработки, вы можете скопировать сценарий serve и переименовать его в serve:local, а затем отредактировать исходный сценарий serve, чтобы он выглядел следующим образом:

vue-cli-service serve --mode development

Что действительно является режимом по умолчанию для serve из коробки с CLI 3. Мы только что явно установили режим.

...