全局SASS/SCSS变量在Vue项目中应用解决方案

栏目: CSS · 发布时间: 6年前

内容简介:我要在其他文件内都用这个来保证样式统一。比如某个组件这样就报错了。要改成下面这样简单描述一下:做Vue项目的时候,有时候我们预先设置了一个主题样式文件(

场景说明

// 这是一个存放变量的scss文件 "@/styles/_variables.scss"
// color font ...
$cf-light: #B6B6B6;
$cf-gray: #8C8C8C;
$cf-med: #505050;
$cf-dark: #333333;
$cf-highlight: #1775F0;

我要在其他文件内都用这个来保证样式统一。比如某个组件

<template>
  <div class="notice">注意!</div>
</template>

<style lang="scss" scoped>
.notice {
  color: $cf-highlight;
}
</style>

这样就报错了。要改成下面这样

<template>
  <div class="notice">注意!</div>
</template>

<style lang="scss" scoped>
@import "@/styles/_variables.scss";
.notice {
  color: $cf-highlight;
}
</style>

简单描述一下:做Vue项目的时候,有时候我们预先设置了一个主题样式文件( _variables.scss ),存放大量的定义的SASS变量,需要在不同的组件中使用,默认是无法使用的,除非每个组件内都引入这个 _variables.scss 文件,十分麻烦,这里提供几种方案。

解决办法

我有几个解决方案,理论上都可行,大家不妨根据实际应用场景来实践一下。

使用sass-resources-loader

如果项目使用Vue-cli 2/3,或者Vue项目用的Webpack,用这个loader都是可以的。官方对于各种场景已经写的很清楚了,请看 sass-resources-loader 。具体不说明了。

Vue-cli 3.x 下的最方便的方案

这个我还没实践,不过应该是可行的。。。给小白们自己去试,好用的话记得留言回复下哦~

打开 vue.config.js 文件,进行如下配置:

module.exports = {
  css: {
    loaderOptions: {
      sass: {
        data: `@import "@/styles/_variables.scss";`
      }
    }
  }
};

具体细节,请阅读:

这两篇原理相同,就是细节上有点不同,怕有的打不开就放两个给大家研究下。

Nuxt

这里还是接住一个插件 style-resources-module ,这个最近才出的,高级很多,在他之前,都是用 nuxt-sass-resources-loader ,如果你的项目还在用旧的,可以换成新的。 nuxt-sass-resources-loader 官方也说了不在更新维护,建议使用 style-resources-module

怎么用呢?这里有 Example ,我也复制一份,醒目。打开 nuxt.config.js

export default {
  modules: ['@nuxtjs/style-resources'],
  styleResources: {
    scss: [
      './assets/styles/_variables.scss',
      './assets/styles/_mixins.scss' // use underscore "_" & also file extension ".scss"
      ]
  }
}

自己注意文件路径~

结语

现在不用每个组件都写导入变量文件了,是不是轻松多了,也不会因为文件名,路径调整,而胆战心惊的文件批量替换。

我为什么写这个文章,因为虽然以前研究过,但是时代变化很快,一些更好的方案出现了,但是很多人依旧采用旧的,可能在新的项目上带来一些问题,所以就更新了。

(小字,看不见):其次,我其实在使用easywebpack的egg+vue脚手架遇到了这个问题,搞了半天没搞好。。。去官方群里问没人鸟我,于是凄惨退群(底层技术渣的待遇)。

参考:


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法的陷阱

算法的陷阱

阿里尔•扎拉奇 (Ariel Ezrachi)、莫里斯•E. 斯图克 (Maurice E. Stucke) / 余潇 / 中信出版社 / 2018-5-1 / CNY 69.00

互联网的存在令追求物美价廉的消费者与来自世界各地的商品只有轻点几下鼠标的距离。这诚然是一个伟大的科技进步,但却也是一个发人深思的商业现象。本书中,作者扎拉奇与斯图克将引领我们对由应用程序支持的互联网商务做出更深入的检视。虽然从表面上看来,消费者确是互联网商务兴盛繁荣过程中的获益者,可精妙的算法与数据运算同样也改变了市场竞争的本质,并且这种改变也非总能带来积极意义。 首当其冲地,危机潜伏于计算......一起来看看 《算法的陷阱》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具