Я прочитал эти статьи о том, как использовать переменные окружения в 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.
Нужно ли устанавливать значение во время сборки пакета, чтобы оно было доступно в приложении?
Когда вы указываете переменные в .env.*
Вы не можете изменить его во время выполнения, потому что эти "имена переменных" просто будут заменены значением переменной во время связывания с Webpack (для этого используется DefinePlugin).
Вы можете увидеть в выпуске js bundle, что ваш process.env.VUE_APP_AUTH_AUTHORITY
просто заменил в коде строку 'http://localhost/auth'
. Поэтому переменные env используются только во время сборки (по среде Nodejs).
Для производства вы должны подготовить .env.production
с вашими переменными и построить свое приложение в режиме production
.
См. Также документы: Использование переменных Env в клиентском коде /Vue Cli