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 相关文章推荐
判断是否输入完毕再激活提交按钮
Jun 26 Javascript
js操纵dom生成下拉列表框的方法
Feb 24 Javascript
jQuery中:only-child选择器用法实例
Jan 03 Javascript
JavaScript动态修改背景颜色的方法
Apr 16 Javascript
解决WordPress使用CDN后博文无法评论的错误
Dec 15 Javascript
解析浏览器端的AJAX缓存机制
Jun 21 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
Apr 27 jQuery
Angular directive递归实现目录树结构代码实例
May 05 Javascript
详解angularjs 学习之 scope作用域
Jan 15 Javascript
浅谈Node.js 子进程与应用场景
Jan 24 Javascript
详解小程序如何避免多次点击,重复触发事件
Apr 08 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
Aug 26 Javascript
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
php5.4传引用时报错问题分析
2016/01/22 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
jQuery插件开发基础简单介绍
2013/01/07 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
javascript+jQuery实现360开机时间显示效果
2017/11/03 jQuery
微信小程序的部署方法步骤
2018/09/04 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
Python3中多线程编程的队列运作示例
2015/04/16 Python
使用Python生成url短链接的方法
2015/05/04 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
Python编程中flask的简介与简单使用
2018/12/28 Python
解决.ui文件生成的.py文件运行不出现界面的方法
2019/06/19 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
纪念建党演讲稿范文
2014/01/13 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
春节晚会开场白
2015/05/29 职场文书
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python
详解MySQL中的pid与socket
2021/06/15 MySQL