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 相关文章推荐
麦鸡的TAB切换功能结合了javascript和css
Dec 17 Javascript
Javascript String.replace的妙用
Sep 08 Javascript
关于JS字符串函数String.replace()
Apr 07 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
Aug 18 Javascript
有效提高JavaScript执行效率的几点知识
Jan 31 Javascript
JS模拟bootstrap下拉菜单效果实例
Jun 17 Javascript
xmlplus组件设计系列之按钮(2)
Apr 26 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
Sep 05 jQuery
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 Javascript
node读写Excel操作实例分析
Nov 06 Javascript
JavaScript实现与web通信的方法详解
Aug 07 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
使用PHP制作新闻系统的思路
2006/10/09 PHP
浅析SVN常见问题及解决方法
2013/06/21 PHP
PHP将XML转数组过程详解
2013/11/13 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
python基础教程之获取本机ip数据包示例
2014/02/10 Python
Python random模块常用方法
2014/11/03 Python
浅谈python多线程和队列管理shell程序
2015/08/04 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
python 中文件输入输出及os模块对文件系统的操作方法
2018/08/27 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
师范毕业生自我鉴定
2014/01/15 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
会计实训报告范文
2014/11/04 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
Golang实现AES对称加密的过程详解
2021/05/20 Golang