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 相关文章推荐
html读出文本文件内容
Jan 22 Javascript
奇妙的js
Sep 24 Javascript
javascript实现日期按月份加减
May 15 Javascript
3种js实现string的substring方法
Nov 09 Javascript
使用BootStrap实现用户登录界面UI
Aug 10 Javascript
JavaScript中获取时间的函数集
Aug 16 Javascript
基于jQuery实现的查看全文功能【实用】
Dec 11 Javascript
bootstrap 路径导航 分页 进度条的实例代码
Aug 06 Javascript
深入浅析vue中cross-env的使用
Sep 12 Javascript
JS函数基本定义与用法示例
Jan 15 Javascript
公众号SVG动画交互实战代码
May 31 Javascript
Vue看了就会的8个小技巧
Jan 21 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
PHP连接MySQL数据的操作要点
2015/03/20 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
Python获取文件ssdeep值的方法
2014/10/05 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
python决策树之CART分类回归树详解
2017/12/20 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
Python接口测试get请求过程详解
2020/02/28 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
Python Serial串口基本操作(收发数据)
2020/11/06 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
大学生简历的个人自我评价
2013/12/04 职场文书
2014村务公开实施方案
2014/02/25 职场文书
2016公司年会通知范文
2015/04/25 职场文书
大国崛起观后感
2015/06/02 职场文书
运动会宣传稿100字
2015/07/23 职场文书
追悼会答谢词范文
2015/09/29 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
一文读懂navicat for mysql基础知识
2021/05/31 MySQL
浅谈redis整数集为什么不能降级
2021/07/25 Redis
Linux安装apache服务器的配置过程
2021/11/27 Servers