vue-cli4 项目sass变量自动引入全局

背景:在项目开发中,我们经常会将样式中的值作为一个变量,尤其是需要处理主题切换时候,更是会通过sass的语法定义样式变量。

1. 首先我们定义一个样式变量文件,文件名暂定:var.scss,如下:

// var.scs
$--main-color:red;

 

2. 我们在开发的业务中,需要编写样式时,需要引入【var.scss】文件,然后使用里面的变量:

 1 <template lang="pug">
 2 div(style="height:100%;width:100%; ")
 3     .text 我是红色,因为颜色变量$--main-color为red
 4 
 5 </template>
 6 <style scoped lang="scss">
 7 @import "../../style/var.scss";
 8 .text {
 9     color: $--main-color;
10 }
11 </style>

页面效果如下:

 

 

 问题:这样太过于麻烦,几乎每个页面都需要引入 var.scss 文件才能去使用颜色变量,这样太过于繁琐了。

 

 

 

解决方法就是在vue.config.js的配置文件中配置以下,则var.scss的变量自动视为全局引入,后续使用中不需要再次引入var.scss文件:

 1 module.exports = {
 2     chainWebpack: (config) => {
 3           const oneOfsMap = config.module.rule("scss").oneOfs.store;
 4           oneOfsMap.forEach((item) => {
 5             item
 6               .use("sass-resources-loader")
 7               .loader("sass-resources-loader")
 8               .options({
 9                 // 公用scss
10                 resources: path.resolve(__dirname, `./src/imom-web/style/var.scss`),
11               })
12              .end();
13           });      }
16 }

 

 

 

 

posted @ 2022-03-17 21:33  蛙仔  阅读(344)  评论(0编辑  收藏  举报