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 19 Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
Vue 的 v-model用法实例
Nov 23 Vue.js
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
vue项目实现分页效果
Mar 24 Vue.js
如何理解Vue简单状态管理之store模式
May 15 Vue.js
vue项目支付功能代码详解
Feb 18 Vue.js
在vue中import()语法不能传入变量的问题及解决
Apr 01 Vue.js
Vue.Draggable实现交换位置
Apr 07 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
vue如何在data中引入图片的正确路径
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
基于PHP与XML的PDF文档生成技术
2006/10/09 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
浅谈vue.js中v-for循环渲染
2017/07/26 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
解决DataFrame排序sort的问题
2018/06/07 Python
Python实现FLV视频拼接功能
2020/01/21 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
护士自荐信怎么写
2013/10/18 职场文书
学生处主任岗位职责
2013/12/01 职场文书
中学生爱国演讲稿
2013/12/31 职场文书
法学个人求职信范文
2014/01/27 职场文书
保护环境倡议书500字
2014/05/19 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python