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

 更新时间:2018年09月04日 10:10:36   作者:上善若水丶  
这篇文章主要介绍了vue2中使用sass并配置全局的sass样式变量的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

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样式变量,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Nuxt3项目搭建过程(Nuxt3+element-plus+scss详细步骤)

    Nuxt3项目搭建过程(Nuxt3+element-plus+scss详细步骤)

    这篇文章主要介绍了Nuxt3项目搭建(Nuxt3+element-plus+scss详细步骤),本次记录一次使用Nuxt3搭建前端项目的过程,内容包含Nuxt3的安装,基于Vite脚手架(默认)构建的vue3项目,element-plus的安装配置,scss的安装,目录结构的创建和解释,需要的朋友可以参考下
    2022-12-12
  • 详解Vue 事件修饰符capture 的使用

    详解Vue 事件修饰符capture 的使用

    capture事件修饰符的作用是给元素添加一个监听器,当元素发生冒泡时,先触发带有该修饰符的元素。这篇文章给大家介绍了Vue 事件修饰符capture 的使用,需要的朋友参考下吧
    2017-12-12
  • vue3中单文件组件<script setup>实例详解

    vue3中单文件组件<script setup>实例详解

    <script setup>是vue3中新引入的语法糖,目的是简化使用Composition API时冗长的模板代码,下面这篇文章主要给大家介绍了关于vue3中单文件组件<script setup>的相关资料,需要的朋友可以参考下
    2022-07-07
  • 使用vNode实现给列表字段打标签

    使用vNode实现给列表字段打标签

    这篇文章主要为大家介绍了使用vNode实现给列表字段打标签示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • vue实现无限消息无缝滚动

    vue实现无限消息无缝滚动

    这篇文章主要为大家详细介绍了vue实现无限消息无缝滚动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Vue Elenent实现表格相同数据列合并

    Vue Elenent实现表格相同数据列合并

    这篇文章主要为大家详细介绍了Vue Elenent实现表格相同数据列合并,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Vue3 响应式 API 及 reactive 和 ref 的用法示例详解

    Vue3 响应式 API 及 reactive 和 ref&

    响应式是一种允许以声明式的方式去适应变化的编程范例,这篇文章主要介绍了关于Vue3响应式API及reactive和ref的用法,需要的朋友可以参考下
    2023-06-06
  • Vue如何进行数据代理

    Vue如何进行数据代理

    这篇文章主要介绍了vue如何进行数据代理,通过本文学习我们了解如何代理的及验证两条线的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • Vue3如何清空Reactive定义的数组

    Vue3如何清空Reactive定义的数组

    这篇文章主要介绍了Vue3如何清空Reactive定义的数组问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue3实现登录表单验证功能

    Vue3实现登录表单验证功能

    这篇文章主要介绍了Vue3实现登录表单验证功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06

最新评论