использование переменных среды в приложении vuejs

1

Я прочитал эти статьи о том, как использовать переменные окружения в vuejs.

Я установил свой локальный файл.env.local и установил dotenv

VUE_APP_AUTH_AUTHORITY = 'http://localhost/auth'

и у меня есть файл конфигурации

export default {
  AUTH_AUTHORITY: process.env.VUE_APP_AUTH_AUTHORITY,
}

Это работает на моей локальной машине.

После подготовки сборки к разработке я хочу развернуть вывод сборки в производственную среду и установить переменную окружения в процессе производства.

Сборка должна быть выполнена в среде разработки, а выход отправлен в производственную группу в другом месте.

Похоже, что приложение не собирает переменную env в рабочей среде.

Я установил значение для VUE_APP_AUTH_AUTHORITY на сервере (windows 2012), и приложение работает в IIS.

Нужно ли устанавливать значение во время сборки пакета, чтобы оно было доступно в приложении?

  • 0
    В зависимости от того, как у вас настроена сборка, может потребоваться ее настройка перед сборкой пакета. Когда я использовал gulp, он запекал некоторые пакеты env в пакет, поэтому их нужно было устанавливать перед
  • 0
    есть ли способ установить его после сборки? потому что у меня нет доступа к производственной среде.
Показать ещё 3 комментария
Теги:
vue.js
environment-variables

1 ответ

1
Лучший ответ

Когда вы указываете переменные в .env.* Вы не можете изменить его во время выполнения, потому что эти "имена переменных" просто будут заменены значением переменной во время связывания с Webpack (для этого используется DefinePlugin).

Вы можете увидеть в выпуске js bundle, что ваш process.env.VUE_APP_AUTH_AUTHORITY просто заменил в коде строку 'http://localhost/auth'. Поэтому переменные env используются только во время сборки (по среде Nodejs).

Для производства вы должны подготовить .env.production с вашими переменными и построить свое приложение в режиме production.

См. Также документы: Использование переменных Env в клиентском коде /Vue Cli

  • 1
    Спасибо, это имеет смысл. Единственная проблема в том, что у меня нет доступа к производственным ценностям. Значение может быть любым, что выбрала производственная команда, и это значение недоступно для команды разработчиков.
  • 0
    @capiono, так что единственный способ предоставить значения для создания конфигурации во время выполнения и ручного изменения значений парнем, который имеет доступ к значениям prod.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню