Vue中全局导入scss

Vue中全局导入scss

需求: 定义的全局变量和mixins都需要在每个文件下面导入一次, 显得过于繁琐

1. Vue/cli

借助于第三方模块sass-resources-loader可以很方便的直接在全局导入

  1. 首先下载npm i sass-resources-loader
  2. vue.config.js中配置, 没有就新建一个
module.exports = {
  chainWebpack: (config) => {
       const oneOfsMap = config.module.rule('scss').oneOfs.store
       oneOfsMap.forEach((item) => {
           item.use('sass-resources-loader')
               .loader('sass-resources-loader')
               .options({
                   // 可以使用数组的方式导入,数组里面的文件就可以全局使用了
                   resources: ['./src/styles/mixins.scss', './src/styles/variable.scss']
               })
               .end()
       })
   }
}

或者可以写成

module.exports = {
	configureWebpack: {
		module: {
	      rules: [
	        // 全局导入 scss
	        {
	          test: /\.scss$/,
	          exclude: /node_modules/,
	          use: [
	            {
	              loader: 'sass-resources-loader',
	              options: {
	                resources: ['./src/styles/variables.scss']
	              }
	            }
	          ]
	        }
	      ]
	    }
	}
}

2.Vite

vite.config.ts文件

export default defineConfig(({ command, mode }) => {
  return {
    resolve: {
      alias: {
        "@": resolve(__dirname, "src")
      }
    },
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: `@import "@/styles/variables.scss";`
        }
      }
    },
  }
})

目录结构
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值