Vue项目自动注入less、sass、scss、stylus全局变量

一、Vue2项目

javascript 复制代码
// vue.config.js
const path = require('path')
module.exports = {
  css: {
    loaderOptions: {
      // 给 sass-loader 传递选项
      sass: {
        // @/ 是 src/ 的别名
        // 所以这里假设有 `src/assets/style/var.sass` 这个文件
        // 注意:在 sass-loader v8 中,这个选项名是 "prependData"
        additionalData: `@import "~@/assets/style/var.sass"`
      },
      // 默认情况下 `sass` 选项会同时对 `sass` 和 `scss` 语法同时生效
      // 因为 `scss` 语法在内部也是由 sass-loader 处理的
      // 但是在配置 `prependData` 选项的时候
      // `scss` 语法会要求语句结尾必须有分号,`sass` 则要求必须没有分号
      // 在这种情况下,我们可以使用 `scss` 选项,对 `scss` 语法进行单独配置
      scss: {
        additionalData: `@import "~@/assets/style/var.scss";`
      },
      // 
      less:{
        additionalData: `@import "~@/assets/style/var.less";`
      },
      stylus: {
        import: path.join(__dirname, './src/assets/style/var.styl')
      }
    }
  }
}

官方文档:CSS 相关 | Vue CLI

二、Vue3项目

javascript 复制代码
import { fileURLToPath, URL } from 'node:url'
import path from 'path'

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

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue()
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    }
  },
  css: {
    preprocessorOptions: {
      less: {
        additionalData: `@import "@/assets/style/var.less";`,
      },
      sass: {
        additionalData: `@import "@/assets/style/var.sass"`,
      },
      scss: {
        additionalData: `@import "@/assets/style/var.scss";`,
      },
      stylus: {
        imports: [path.resolve(__dirname, './src/assets/style/var.styl')]
      }
    },
  }
})

2024-4-9

相关推荐
遂心_19 分钟前
JavaScript 函数参数传递机制:一道经典面试题解析
前端·javascript
小徐_233329 分钟前
uni-app vue3 也能使用 Echarts?Wot Starter 是这样做的!
前端·uni-app·echarts
RoyLin33 分钟前
TypeScript设计模式:适配器模式
前端·后端·node.js
遂心_1 小时前
深入理解 React Hook:useEffect 完全指南
前端·javascript·react.js
Moonbit1 小时前
MoonBit 正式加入 WebAssembly Component Model 官方文档 !
前端·后端·编程语言
龙在天1 小时前
ts中的函数重载
前端
卓伊凡1 小时前
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
前端
前端Hardy1 小时前
HTML&CSS: 谁懂啊!用代码 “擦去”图片雾气
前端·javascript·css
前端Hardy1 小时前
HTML&CSS:好精致的导航栏
前端·javascript·css
天下无贼2 小时前
【手写组件】 Vue3 + Uniapp 手写一个高颜值日历组件(含跨月补全+今日高亮+选中状态)
前端·vue.js