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 相关文章推荐
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
Jul 25 Javascript
html 锁定页面(js遮罩层弹出div效果)
Oct 27 Javascript
一起来写段JS drag拖动代码
Dec 09 Javascript
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
dreamweaver 8实现Jquery自动提示
Dec 04 Javascript
JavaScript操作cookie类实例
Mar 31 Javascript
AngularJS通过$location获取及改变当前页面的URL
Sep 23 Javascript
JavaScript实现汉字转换为拼音的库文件示例
Dec 22 Javascript
webpack之devtool详解
Feb 10 Javascript
vue如何将v-for中的表格导出来
May 07 Javascript
vue-cli项目无法用本机IP访问的解决方法
Sep 20 Javascript
JS + HTML 罗盘式时钟的实现
May 21 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
第六节--访问属性和方法
2006/11/16 PHP
php类声明和php类使用方法示例分享
2014/03/29 PHP
javascript new一个对象的实质
2010/01/07 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
学习AngularJs:Directive指令用法(完整版)
2016/04/26 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
使用Require.js封装原生js轮播图的实现代码
2017/06/15 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
Python中的上下文管理器和with语句的使用
2018/04/17 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
深入浅析Python代码规范性检测
2020/07/31 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
医药工作者的求职信范文
2013/09/21 职场文书
爱心捐款倡议书
2014/04/14 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
转让协议书范本
2014/09/13 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
2015年除四害工作总结
2015/07/23 职场文书