当前位置: 首页 > news >正文

vite配置scss全局变量

vite配置scss全局变量

创建单独文件variable.scss在其中定义变量

vite.config.ts中配置

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// https://vite.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src')
    }
  },
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: '@use "@/styles/variable.scss";'
      }
    }
  }
})

任何scss地方使用变量

p {
  color: variable.$color;
}

可能遇到的问题

Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0

sass在3.0.0移除了@import改为@use,因此会有这个提示,所以配置时推荐使用@use

弃用的原因在于 @import 规则存在一些问题,比如会把所有变量、混入(mixins)和函数都导入到全局作用域,容易造成命名冲突,@use 规则能更好地控制作用域,避免这类问题

他们在使用时是有区别的

@import 对应使用变量

p { color: $color}

@use 对应使用变量

p {
  color: variable.$color; // 文件名.变量名
}

Can't find stylesheet to import. 

配置时,发现路径是对的,但是一直报错,如下

在使用相对路径的时候,vite可能无法解析,因为在sass的加载器在处理相对路径时,会根据当前文件的位置查找,而additionalData是全局注入的内容,没有明确的上下文依赖关系,因此相对路径对报错

修改为@/styles/variable.scss就可以完美解决了

Module loop: this module is already being loaded.

重复引入module报错,一般情况,如果我们在main.ts已经引入过一次scss文件,在继续在vite.config.ts中引入,报错的

修改方案: 只在一个地方引入

通常scss变量的的文件都是单独建立一个文件,不会和index.scss混在一起

index.scss通常是在main.js中引入

而variable.scss通常是在vite.config.js中配置,他们的区别是什么呢

main.js与vite.config.js 引入scss的区别

main.ts全局引入,是让整个项目都加载使用了scss文件的样式,每个scss文件的yi'ji保持了自己独立的作用域,不同文件直接的变量是不能相互使用的,这也是为什么要在vite.config.js中配置

vite.config.js的additionalData引入a文件,会保证在每个scss文件编译之前执行先编译一次a文件,保证了每次scss文件注入时,a文件变量已经都存在了,这样保证了变量可以全局使用

相关文章:

  • 22.4.3.2 TCP/UDP连接信息
  • 深度学习在文本情感分析中的应用
  • java数据结构_优先级队列(堆)_6.2
  • 4. grafana(7.5.17)功能菜单简介
  • 15-最后一个单词的长度
  • 体验用ai做了个python小游戏
  • ECOLOGY流程表单字段由单行文本改成多行文本
  • DeepSeek + Claude 提升效果
  • 当C#邂逅Deepseek, 或.net界面集成deepseek
  • Weblogic 反序列化漏洞深度剖析与复现
  • MouseWithoutBorder鼠标指针闪烁、变大+AltTab有程序执行的问题解决方案
  • 【算法】787. 归并排序
  • 指标管理项目建设的高频问题和解决思路
  • 房屋价格 - 高级回归技术
  • Visual Studio Code 集成 Baidu Comate
  • Spring Boot 内置工具类
  • LeetCode刷题---哈希表---347
  • UE_C++ —— Container TMap
  • scratch猜年龄互动小游戏 2024年12月scratch四级真题 中国电子学会 图形化编程 scratch四级真题和答案解析
  • 问卷数据分析|SPSS实操之相关分析
  • 中美日内瓦经贸会谈联合声明
  • 耿军强任陕西延安市领导,此前任陕西省公安厅机场公安局局长
  • 经济日报刊文:品牌经营不能让情怀唱“独角戏”
  • 红场阅兵即将开始!中国人民解放军仪仗队亮相
  • 洛杉矶奥组委确认2028年奥运会和残奥会开闭幕式场地
  • 北上广深均宣布下调个人住房公积金贷款利率