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中通过render函数给子组件设置ref操作
Nov 17 Vue.js
Vue如何循环提取对象数组中的值
Nov 18 Vue.js
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
Vue-router中hash模式与history模式的区别详解
Dec 15 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
vue使用require.context实现动态注册路由
Dec 25 Vue.js
Vue项目中使用mock.js的完整步骤
Jan 12 Vue.js
Vue h函数的使用详解
Feb 18 Vue.js
Vue的列表之渲染,排序,过滤详解
Feb 24 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
三种方式清除vue路由跳转router-link的历史记录
Apr 10 Vue.js
vue css 相对路径导入问题级踩坑记录
Jun 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
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
PHP clearstatcache()函数详解
2010/03/02 PHP
PHP连接access数据库
2015/03/27 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
php实现生成验证码实例分享
2016/04/10 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
javascript中scrollTop详解
2015/04/13 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
编写Python CGI脚本的教程
2015/06/29 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
python getpass模块用法及实例详解
2019/10/07 Python
简单了解django文件下载方式
2020/02/10 Python
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
大学生自我鉴定
2013/12/16 职场文书
企业安全生产责任书
2014/04/14 职场文书
食品工程专业求职信
2014/06/15 职场文书
金融管理专业求职信
2014/07/10 职场文书
二审答辩状范文
2015/05/22 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang