vue2中使用sass并配置全局的sass样式变量的方法


Posted in Javascript onSeptember 04, 2018

Sass语言

      Sass是一种强大的css扩展语言(css本身并不是一门语言),它允许你使用变量、嵌套规则、mixins、导入等css没有但开发语言(如Java、C#、Ruby等)有的一些特性,并且完全兼容CSS语法。Sass有助于保持大型样式表结构良好。

      Sass有两种语法。

      一种称为SCSS,是一个CSS3语法的扩充版本,也就是说,所有符合CSS3语法的样式表也都是具有相同语法意义的SCSS文件,SCSS样式表文件要以.scss扩展名结尾。在vue中,我们可以使用<style lang="scss"></style>来标志里面的内容是以SCSS语法来书写的。

      一种称为SASS,是Sass以前的语法,它和python一样,没有{}大括号来标志程序块,而是以缩进来标志嵌套层级;而且也不使用分号,而是用换行符来分隔属性。SASS样式表文件要以.sass扩展名结尾。在vue中,我们可以使用<style lang="sass"></style>来标志里面的内容是以SASS语法来书写的。

在vue中使用样式文件sass,如果每个.vue文件都引入该样式,build出来文件后,势必会造成样式的重复,冗余,如果在main.js中全局引入一个scss文件,在其中定义变量在其他组件或者页面中引用报变量未定义错误,其他的样式可以正常显示,显然是编译的问题。那么,全局设置并加载样式就显得很有必要了!

首先,npm安装好

"sass-loader": "^6.0.7",
 "sass-resources-loader": "^1.3.3",

在build/webpack.base.conf.js中,在module的rules里添加

{
    test: /\.scss$/,
    loaders: ["style", "css", "sass"]
   }

然后在build/utils.js文件中加入如下代码:

需要注意的是:我的全局样式是放在src/common/sass/index.scss中的

function resolveResouce(name) {
  return path.resolve(__dirname, '../src/common/sass/' + name);
 }
 function generateSassResourceLoader() {
  var loaders = [
   cssLoader,
   'postcss-loader',
   'sass-loader',
   {
    loader: 'sass-resources-loader',
    options: {
     //这是用到的sass文件,多个文件时用数组的形式传入,这是带有变量和mixin的scss文件
     resources: [resolveResouce('variable.scss'), resolveResouce('mixin.scss')] 注意这是我全局样式的位置,个人不同,需做调整
    }
   }
  ];
  if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    fallback: 'vue-style-loader'
   })
  } else {
   return ['vue-style-loader'].concat(loaders)
  }
 }

最后,将该页面下方的return部分,改成如下模样

return {
  css: generateLoaders(),
  postcss: generateLoaders(),
  less: generateLoaders('less'),
  //sass: generateLoaders('sass', { indentedSyntax: true }),
  //scss: generateLoaders('sass'),
  sass: generateSassResourceLoader(),
  scss: generateLoaders('sass')
   .concat(
    {
     loader: 'sass-resources-loader',
     options: {
      resources: path.resolve(__dirname, '../src/common/sass/index.scss') //注意这是我全局样式的位置,个人不同,需做调整
     }
    }
   ),
  stylus: generateLoaders('stylus'),
  styl: generateLoaders('stylus')
 }

总结

以上所述是小编给大家介绍的vue2中使用sass并配置全局的sass样式变量,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
原生js实现查找/添加/删除/指定元素的class
Apr 12 Javascript
Jquery Validate 正则表达式实用验证代码大全
Aug 23 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
javascript搜索框点击文字消失失焦时文本出现
Sep 18 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
Mar 03 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
Apr 01 Javascript
浅析如何利用JavaScript进行语音识别
Oct 27 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
Apr 25 Javascript
js实现字符全排列算法的简单方法
May 01 Javascript
强大的 Angular 表单验证功能详细介绍
May 23 Javascript
Vue框架下引入ActiveX控件的问题解决
Mar 25 Javascript
vue + el-form 实现的多层循环表单验证
Nov 25 Vue.js
Element UI 自定义正则表达式验证方法
Sep 04 #Javascript
在vue项目中引入高德地图及其UI组件的方法
Sep 04 #Javascript
使用validate.js实现表单数据提交前的验证方法
Sep 04 #Javascript
快速解决vue-cli在ie9+中无效的问题
Sep 04 #Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
Sep 04 #Javascript
create-react-app安装出错问题解决方法
Sep 04 #Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
Sep 04 #Javascript
You might like
漂亮的widgets,支持换肤和后期开发新皮肤
2007/04/23 Javascript
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
web页面数据展示新想法(json)
2010/06/08 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
Python中文件的读取和写入操作
2018/04/27 Python
用Python实现数据的透视表的方法
2018/11/16 Python
django的csrf实现过程详解
2019/07/26 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
企事业单位求职者的自我评价
2013/12/28 职场文书
关于运动会的稿件
2014/02/02 职场文书
劳动竞赛口号
2014/06/16 职场文书
岗位说明书标准范本
2014/07/30 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2014年实习生工作总结
2014/11/27 职场文书
大学生求职意向书
2015/05/11 职场文书
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python