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


Posted in Vue.js onDecember 28, 2020

在写项目的过程中,如果用的是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官网中看到此说明。【传送门】

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

 

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

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

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

以上就是vue中配置scss全局变量的步骤的详细内容,更多关于vue配置scss全局变量的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
Vue 组件注册全解析
Dec 17 Vue.js
vue+openlayers绘制省市边界线
Dec 24 Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
vue常用高阶函数及综合实例
Feb 25 Vue.js
Vue基本指令实例图文讲解
Feb 25 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 18 Vue.js
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
vue @ ~ 相对路径 路径别名设置方式
Jun 05 Vue.js
VUE递归树形实现多级列表
Jul 15 Vue.js
Vue深入理解插槽slot的使用
Aug 05 Vue.js
为什么推荐使用JSX开发Vue3
Dec 28 #Vue.js
Vue仿百度搜索功能
Dec 28 #Vue.js
vue中watch的用法汇总
Dec 28 #Vue.js
浅析vue中的nextTick
Dec 28 #Vue.js
Vue实现省市区三级联动
Dec 27 #Vue.js
vue3.0自定义指令(drectives)知识点总结
Dec 27 #Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 #Vue.js
You might like
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
js汉字转拼音实现代码
2013/02/06 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
js运动应用实例解析
2015/12/28 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
jQuery简单实现MD5加密的方法
2017/03/03 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
python生成词云的实现方法(推荐)
2017/06/13 Python
将字典转换为DataFrame并进行频次统计的方法
2018/04/08 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
Python 如何测试文件是否存在
2020/07/31 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
css 元素选择器的简单实例
2016/05/23 HTML / CSS
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
描述RIP和OSPF区别以及特点
2015/01/17 面试题
介绍一下你对SOA的认识
2016/04/24 面试题
马丁路德金演讲稿
2014/05/19 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
财务管理制度范本
2015/08/04 职场文书
python在package下继续嵌套一个package
2022/04/14 Python
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技