【问题标题】:Import .env variable into Vuetify variables.scss将 .env 变量导入 Vuetify variables.scss
【发布时间】:2026-01-15 07:40:01
【问题描述】:
  • 在 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 的未定义变量错误。

如何在 Vuetify variables.scss 文件中使用 .env 变量?

【问题讨论】:

    标签: vue.js webpack environment-variables vuetify.js vue-cli


    【解决方案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
              }
          }
      }
    }
    

    【讨论】:

    • 我收到此错误:ValidationError: Invalid options object。 Sass Loader 已使用与 API 架构不匹配的选项对象进行初始化。 - 选项具有未知属性“附加数据”。这些属性是有效的:object { implementation?, sassOptions?, prependData?, sourceMap?, webpackImporter? }
    • 看来您使用的是较旧的 sass 加载程序,并且密钥无关。我编辑了我的答案,因为我不确定你为什么使用 $${'VUE_APP_FONT_SIZE'}
    • 非常感谢。似乎缺少的只是这一部分: sass: { prependData: sav }