#vue.js #webpack #environment-variables #vuetify.js #vue-cli
#vue.js #webpack #переменные среды #vuetify.js #vue-cli
Вопрос:
- В проекте Vue-cli webpack я определяю переменную среды в файле .env следующим образом:
VUE_APP_FONT_SIZE=30px
- Затем в vue.config.js Я «добавляю» это вот так:
let sav = ''
if (/VUE_APP_/i.test('VUE_APP_FONT_SIZE')) {
sav = `$${'VUE_APP_FONT_SIZE'}: "${process.env['VUE_APP_FONT_SIZE']}";`
}
module.exports = {
css: {
loaderOptions: {
scss: {
prependData: sav
}
}
}
}
- Затем я могу использовать ее в любом файле .scss следующим образом:
font-size: unquote($VUE_APP_FONT_SIZE);
- Но если я попытаюсь использовать ее в файле Vuetify variables.scss следующим образом:
$font-size-root: $VUE_APP_FONT_SIZE;
я получаю ошибку неопределенной переменной, указывающую на$VUE_APP_FONT_SIZE
.
Как мне использовать переменные .env в файле Vuetify variables.scss?
Ответ №1:
Кажется, вы используете значение переменных также как имя переменной. Может быть, просто попробуйте установить имя переменной напрямую.
// vue.config.js
if (/VUE_APP_/i.test('VUE_APP_FONT_SIZE')) {
// make sure this is executed
sav = `$VUE_APP_FONT_SIZE: "${process.env['VUE_APP_FONT_SIZE']}";`
}
module.exports = {
css: {
loaderOptions: {
scss: {
prependData: sav
},
sass: {
prependData: sav
}
}
}
}
Комментарии:
1. Я получаю эту ошибку: ошибка проверки: недопустимый объект параметров. Загрузчик Sass был инициализирован с использованием объекта options, который не соответствует схеме API. — options имеет неизвестное свойство ‘additionalData’. Допустимы следующие свойства: object { implementation?, sassOptions?, prependData?, sourceMap?, webpackImporter? }
2. Кажется, вы используете более старый загрузчик sass, и ключ не связан. Я отредактировал свой ответ, потому что я не уверен, почему вы используете $${‘VUE_APP_FONT_SIZE’}
3. Большое вам спасибо. Похоже, не хватало только этой части: sass: { prependData: sav }