vue中配置scss全局变量的步骤

 更新时间:2020年12月28日 15:33:57   作者:吃火鸡的馒头  
这篇文章主要介绍了vue中配置scss全局变量的步骤,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下

  在写项目的过程中,如果用的是scss来编写样式代码,常常需要定义各种变量,例如主题色、主字号之类的,因此我们会把这些变量写到一个单独的_variable.scss文件内,但是每次都要在vue单文件内引入这些变量未免太繁琐了,所以有没有办法可以默认把变量文件作为全局文件进行引入呢?答案是肯定的,可以用下面的方法进行配置,可以根据当前使用的框架和环境来进行方法的选择。

  一、使用vue-cli(即vue-cli2)脚手架时

  1. 首先,需要安装一个loader,sass-resources-loader

npm install sass-resources-loader --save-dev

  2. 找到build文件夹下的utils.js文件,在文件内找到这段配置代码

return {
  css: generateLoaders(),
  postcss: generateLoaders(),
  less: generateLoaders('less'),
  sass: generateLoaders('sass', { indentedSyntax: true }),
  scss: generateLoaders('sass'),
  stylus: generateLoaders('stylus'),
  styl: generateLoaders('stylus')
}

  3. 修改其中的scss项,改为

scss: generateLoaders('sass').concat({
   loader:'sass-resources-loader',
   options:{
    resources:path.resolve(__dirname,'../src/styles/_variable.scss')
   }
  })

  4. 重启项目,即可在其他文件内使用这些变量文件了

  二、使用@vue/cli(即vue-cli3)脚手架时

  1. 找到vue.config.js文件,如果没有的话,则自己在根目录新建一个即可

  2. 在文件内编写如下代码:

module.exports = {
 css: {
  loaderOptions: {
   sass: {
    data: `@import "@/styles/_variable.scss";`
   }
  }
 }
}

  3. 重启项目,即可使用

  注意:如果编写完以上代码,重启项目后出现这个错误:

Invalid options object. Sass Loader has been initialised using an options object that does not match the API schema.

  那么说明,你安装的sass-loader应该是V8的版本,可以在package.json中查看是否确实如此,如果的确是v8版本以上,则需要配置不同的写法,因为在V8中已经废除了data这个配置项,改为了prependData,具体可以在vue cli官网中看到此说明。【传送门

   因此,我们需要将配置代码修改成如下样式:

css: {
  loaderOptions: {
    sass: {
      prependData: `@import "~@/styles/_variable.scss";`
    }
  }
}

  好了,重启一下项目,大功告成。

以上就是vue中配置scss全局变量的步骤的详细内容,更多关于vue配置scss全局变量的资料请关注脚本之家其它相关文章!

相关文章

  • vue中按钮操作完刷新页面的实现

    vue中按钮操作完刷新页面的实现

    这篇文章主要介绍了vue中按钮操作完刷新页面的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • vue3中的useAttrs和props的区别解析

    vue3中的useAttrs和props的区别解析

    在vue3中, 提供了一个 useAttrs 的方法它接收到的参数一 prop中可以接收到的数据是基本一样的如果我们想自已写一个组件, 把 elementPlus 中的期中一个组件封装一下,这篇文章主要介绍了vue3中的useAttrs和props的区别,需要的朋友可以参考下
    2023-09-09
  • Vue3.0 自己实现放大镜效果案例讲解

    Vue3.0 自己实现放大镜效果案例讲解

    这篇文章主要介绍了Vue3.0 自己实现放大镜效果案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 详解vue中router-view组件的生成原理

    详解vue中router-view组件的生成原理

    在vue的使用过程中,有一个组件,几乎是必用的,那就是router-view,它是所有组件的入口,是单页面系统的一把利剑,如果你的系统是火箭,那么router-view无疑将是这艘火箭的北斗卫星,本文将给大家介绍vue中的router-view组件是如何生成的,感兴趣的朋友可以参考下
    2024-01-01
  • vue同一个浏览器登录不同账号数据覆盖问题解决方案

    vue同一个浏览器登录不同账号数据覆盖问题解决方案

    同一个浏览器登录不同账号session一致,这就导致后面登录的用户数据会把前面登录的用户数据覆盖掉,这个问题很常见,当前我这边解决的就是同一个浏览器不同窗口只能登录一个用户,对vue同一个浏览器登录不同账号数据覆盖问题解决方法感兴趣的朋友一起看看吧
    2024-01-01
  • 如何巧用Vue.extend继承组件实现el-table双击可编辑(不使用v-if、v-else)

    如何巧用Vue.extend继承组件实现el-table双击可编辑(不使用v-if、v-else)

    这篇文章主要给大家介绍了关于如何巧用Vue.extend继承组件实现el-table双击可编辑的相关资料,不使用v-if、v-else,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • 如何优雅地在vue中添加权限控制示例详解

    如何优雅地在vue中添加权限控制示例详解

    这篇文章主要给大家介绍了关于如何优雅地在vue中添加权限控制的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Vue.js实例方法之生命周期详解

    Vue.js实例方法之生命周期详解

    这篇文章主要给大家介绍了关于Vue.js实例方法之生命周期的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-07-07
  • Vue之vue.$set()方法源码案例详解

    Vue之vue.$set()方法源码案例详解

    这篇文章主要介绍了Vue之vue.$set()方法源码案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • vue动态路由加载时出现Cannot find module xxx问题

    vue动态路由加载时出现Cannot find module xxx问题

    这篇文章主要介绍了vue动态路由加载时出现Cannot find module xxx问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01

最新评论