You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vite 5无法正确导入SCSS变量问题求助

解决Vite 5升级后SCSS模块:export导出异常问题

问题现象

将主题色整合到primary.module.scss,通过:export导出变量供JS/TS调用,同时定义全局CSS变量。升级Vite 5后,导入的颜色对象变为[Object: null prototype] {},或输出类似_blue60_c2dde8的哈希值,而非预期的颜色值。

解决方案

1. 调整Vite CSS模块配置

在vite.config.js/vite.config.ts中显式配置CSS模块参数,确保:export的变量不被哈希化且保留原始键名:

import { defineConfig } from 'vite'

export default defineConfig({
  css: {
    modules: {
      // 允许导出全局变量,避免被局部哈希处理
      exportGlobals: true,
      // 保持导出键的原始命名,不自动转换驼峰/短横线格式
      localsConvention: 'asIs'
    }
  }
})

2. 兼容Sass版本

Vite 5对Sass版本有更高要求,确保安装兼容的Sass版本(推荐1.58.0+):

npm install sass@latest --save-dev

3. 确认文件命名规范

确保SCSS文件后缀为.module.scss,Vite仅对该后缀的文件启用CSS模块处理逻辑。

原因说明

Vite 5对CSS模块的处理逻辑进行了更新:

  • 默认情况下,:export中的键会被当作局部类名进行哈希转换,导致导出值变为哈希字符串而非原始变量值;
  • exportGlobals参数默认值发生变化,需显式开启以允许导出全局变量;
  • 低版本Sass可能与Vite 5的编译逻辑不兼容,导致变量导出失败。

内容的提问来源于stack exchange,提问作者Menachem Hornbacher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 10:45:11