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实现购物小球抛物线的方法实例
Nov 22 Vue.js
vue中defineProperty和Proxy的区别详解
Nov 30 Vue.js
vue-calendar-component 封装多日期选择组件的实例代码
Dec 04 Vue.js
Vue-router中hash模式与history模式的区别详解
Dec 15 Vue.js
Vue实现随机验证码功能
Dec 29 Vue.js
基于vuex实现购物车功能
Jan 10 Vue.js
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 Vue.js
浅谈Vue的computed计算属性
Mar 21 Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
Vue组件化(ref,props, mixin,.插件)详解
May 15 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
php快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
yii上传文件或图片实例
2014/04/01 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
javascript 寻找错误方法整理
2014/06/15 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
关于vue-cli3打包代码后白屏的解决方案
2020/09/02 Javascript
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
python 中的列表解析和生成表达式
2011/03/10 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
python安装numpy&安装matplotlib& scipy的教程
2017/11/02 Python
python实现图片批量压缩程序
2018/07/23 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
Python selenium自动化测试模型图解
2020/04/15 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
HTML5通用接口详解
2016/06/12 HTML / CSS
英文简历中的自我评价用语
2013/12/09 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
群众路线对照检查材料
2014/09/22 职场文书
起诉书范文
2015/05/20 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
用python批量解压带密码的压缩包
2021/05/31 Python
python之基数排序的实现
2021/07/26 Python