sass变量引入全局

https://www.jianshu.com/p/ab9ab999344b(copy)

本文以Sass做案例,Less的参考,基本配置大同小异。
假如我们有一个Sass的全局变量common.scss文件,路径 ../style/common.scss 代码如下:

@mixin t-button($color,$background) {
    color:$color;
    background:$background;
    padding:5px 10px;
}

现在我们想在一个vue文件里引用这个全局样式,怎么办呢?我们能按下边的方法导入。

<style>
@import ‘../style/common.scss‘;
button{
  @include t-button(#fff,blue);
}
</style>

但是这样有一个问题,如果还有其他vue页面也想用这个全局的common.scss文件,我们还需要在使用的vue页面里再次按照上面的方法引入,那么问题来了,如果我更改了这个common.scss文件的路径,那么每次我还要去修改所有的vue页面里的common.scss文件文件路径。有什么好的方法呢,让我一次引入,所有的vue页面均可以自动引用?
1.添加依赖

npm install sass-resources-loader --save-dev

在项目build文件夹里找到utils.js ,定位到下边代码

return {
    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders(‘less‘),
    sass: generateLoaders(‘sass‘, { indentedSyntax: true }),
    scss: generateLoaders(‘sass‘),
    stylus: generateLoaders(‘stylus‘),
    styl: generateLoaders(‘stylus‘)
  }

把上面这句scss: generateLoaders(‘sass‘),改成如下

scss: generateLoaders(‘sass‘).concat(
      {
        loader: ‘sass-resources-loader‘,
        options: {
          resources: path.resolve(__dirname, ‘../src/assets/css/all.scss‘)//这里按照你的文件路径填写
        }
      }
    )

OK,完成,修改后的代码是

return {
    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders(‘less‘),
    sass: generateLoaders(‘sass‘, { indentedSyntax: true }),
    scss: generateLoaders(‘sass‘).concat(
      {
        loader: ‘sass-resources-loader‘,
        options: {
          resources: path.resolve(__dirname, ‘../src/assets/css/all.scss‘)//这里按照你的文件路径填写
        }
      }
    ),
    stylus: generateLoaders(‘stylus‘),
    styl: generateLoaders(‘stylus‘)
  }

这样就可以在所有的scss文件或者vue文件运用全局的scss,而不需要在单独引入。

原文地址:https://www.cnblogs.com/wang-sai-sai/p/11175282.html

时间: 2024-10-12 01:17:26

sass变量引入全局的相关文章

java之static变量与全局、局部变量的区别

static变量与全局.局部变量的区别 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式.这两者在存储方式上并无不同.这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的.而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它.由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函

2.Sass变量

1.Sass中,我们声明变量使用的是 $ 美元符号开头,注意一下,定义一个Sass变量必须用“$”开头,不然编译的时候是无法识别的. 语法: 2.Sass中,对于变量的取值有两种方式: 1>一般值:在Sass中,变量的一般值,指的是我们常见的变量值,这个值可以是数字.字符串            等. 例如:$width:10px;        $color:white;        $bgColor:red;         div{           font-size:$width;

uni-app 如何引入全局方法或变量?

利用Vue.prototype挂载到Vue实例上即可 原文地址:https://www.cnblogs.com/cisum/p/10009224.html

将sass快速引入到移动端项目中加速开发

本文以上图为例子: 首先在根目录创建一个sass文件,在sass文件中分别创建4个文件夹bsae,pages,libs,style; base下存放:样式重置_normalize.scss; 自己定义的scss代码块:_help.scss(如果项目大可以再细分为funiton,mixin,variable等): 通用部分_common.scss;(如上图中的头部,如需要可再细分为common-header , common-nav等部分) pages下存放每个对应的html需要的scss文件,如

Sass变量、嵌套

声明变量定义变量的语法Sass 的变量包括三个部分: 声明变量的符号“$” 变量名称 赋予变量的值简单的示例,假设你的按钮颜色可以给其声明几个变量: 1 $brand-primary : darken(#428bca, 6.5%) !default;/* #337ab7*/ 2 $btn-primary-color : #fff !default; 3 $btn-primary-bg : $brand-primary !default; 4 $btn-primary-border : darke

vue-cli项目中引入全局scss

加载一个全局设置文件 在每个组件里加载一个设置文件,而无需每次都将其显式导入,是一个常见的需求.比如为所有组件全局使用 scss 变量.为了达成此目的: npm install sass-resources-loader --save-dev 然后增加下面的 webpack 规则: { loader: 'sass-resources-loader', options: { resources: path.resolve(__dirname, '../src/style/_variables.sc

【C语言】局部变量、全局变量,局部静态变量,全局静态变量,extern,static的区别

局部变量: 创建在栈区(向下生长),生命周期存在于当前作用域中.     创建时若未初始化,则为随机值. 全局变量: 创建在static区,生命周期一直存在. 创建时若未初始化,则为0. 静态局部变量: 切断了外部链接属性.创建在static区. 创建时若未初始化,则为0. 全局变量和静态变量的存储是放在一块的,初始化了的全局变量和静态变量在一块区域,  未初始化的全局变量和未初始化的静态变量在相邻的另一块区域. 全局静态变量: 切断了外部链接属性,创建在static区,生命周期一直存在. 创建

Sass 变量的作用域

变量是最基础也最常用的东西,例如一段 CSS 中有很多相同的颜色值(例如 #050709),传统的 CSS 中,你就需要不断的去复制这个值,而在 Sass 中,你就可以先在对应文件头部(一般会有一个 var.scss 文件专门用来放置变量等)声明一个变量 $co : #050709 然后在后面需要使用这个颜色值的时候,就可以直接写上 color: $co; 就可以了. 不仅仅需要输入的字符少了,而且根据规则起变量名让人更加易懂,此外后期需要修改这一种颜色的时候,只需要修改一下变量值即可全部修改,

警惕javascript变量的全局污染

作用域的概念总是和变量形影不离,它不是javascript语言独有的概念,只是其运用上与其他大型语言略有不同,JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑. JavaScript对作用域的运用与其他语言略有不同,然而总体概念是一致的.作用域限定了javascript文档中的各个资源的可用范围,决定了你定义变量的位置.使用一个匿名函数来容纳所需的变量就是个很好的方法.所有在函数中定义的变量都只应该在该函