vue引入sass全局变量_vue 引入 sass 定义的变量-程序员宅基地

技术标签: webpack  Vue  sass  

vue引入sass全局变量

       sass或者less都提供变量设置,在需求切换主题的项目中使用less或者sass变量,只要修改变量值,编译后所有用到该变量的样式都会被修改为你想要的效果,但是在vue-cli搭建的项目中,在main.js中全局引入一个scss文件,在其中定义变量在其他组件或者页面中引用报变量未定义错误,其他的样式可以正常显示,显然是编译的问题。

傻瓜式引用

       在每个用到全局变量的组件都引入该全局样式文件

@import 'path/fileName.scss'

但是组件或者页面不在统一层目录下,引入的路径可能也会有差异,所以还是看看 sass-resources-loader 的解决方法吧。

sass-resources-loader引入sass全局变量

       sass-resources-loader可以访问sass资源任何一个需要访问的sass模块。所以,可以使用共享变量和混合所有SASS样式,而不去每个文件都引用。

安装sass-resources-loader

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

修改sass配置

build 文件夹下找到 util.js 修改sass编译器loader的配置

// 全局文件引入 当然只想编译一个文件的话可以省去这个函数
function resolveResource(name) {
    
  return path.resolve(__dirname, '../static/style/' + name);
}
function generateSassResourceLoader() {
    
  var loaders = [
    cssLoader,
    'sass-loader',
    {
      loader: 'sass-resources-loader',
      options: {
        // 多个文件时用数组的形式传入,单个文件时可以直接使用 path.resolve(__dirname, '../static/style/common.scss'
        resources: [resolveResource('common.scss')]  
      }
    }
    ];
    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader'
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }

修改sass配置的调用为 generateSassResourceLoader()

return {
    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders('less'),
    // vue-cli默认sass配置
    // sass: generateLoaders('sass', { indentedSyntax: true }), 
    // scss: generateLoaders('sass'),
    // 新引入的sass-resources-loader
    sass: generateSassResourceLoader(),
    scss: generateSassResourceLoader(),
    stylus: generateLoaders('stylus'),
    styl: generateLoaders('stylus')
  }

main.js 中引用 common.scss 文件,重启服务,其中定义的变量在其他组件就可以使用了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_27868533/article/details/79651659

智能推荐

ajax post导出excel(解决乱码问题)_ajax接收byte[]类型数据生成的excel乱码怎么办-程序员宅基地

文章浏览阅读5.2k次,点赞3次,收藏5次。当前有一个需求 前端对当前页面的数据做筛选之后需要将其导出至excel文件且发送的请求需传入需验证的参数如页面token信息尝试了form提交及其他方法后出现excel乱码等问题 最后用ajax成功完成了导出。直接贴代码:下面是解释:xhr.responseType = “arraybuffer”;这段代码不加会导致导出的excel出现乱码问题。xhr.onload内操作如下:使用..._ajax接收byte[]类型数据生成的excel乱码怎么办

Educoder---Java面向对象(第二章)封装、继承和多态_大花猫喵喵叫java-程序员宅基地

文章浏览阅读1.5w次,点赞30次,收藏143次。第一题声明一个Person类,私有化属性name和age,并将字段封装起来;在Person类中定义一个talk()方法,打印姓名和年龄信息;在main方法中声明并实例化一Person对象p,给p中的属性赋值,调用talk()方法打印 我是:张三,今年:18岁。测试说明测试输入:我是:张三,今年:18岁/********* begin *********/ // 声明并实例化一..._大花猫喵喵叫java

IDEA创建第一个Javaweb项目包括数据库连接_idea创建javaweb项目包括数据库连接-程序员宅基地

文章浏览阅读8.2k次,点赞39次,收藏182次。本文旨在让刚入门Java的新手能够创建第一个web项目,能够对Javaweb开发有一个基本的认识和了解。本文所用工具:Intellij IDEA,可在官网下载社区版或专业版,社区版是免费的。环境:jdk 12.0.2web服务器软件:tomcat 9.0.30数据库:MySQL 8.0.18 (不需数据库只需跳过后面部分即可)Java数据库连接驱动:jdbc 8.0.18jdbc下载教..._idea创建javaweb项目包括数据库连接

数据库课程设计:简易版超市信息管理系统(Java+MySQL)_数据库超市管理系统-程序员宅基地

文章浏览阅读7.2w次,点赞35次,收藏247次。分享一个简单的Java+JDBC+MySQL数据库开发的简易版超市管理系统,完成简单的基础功能,如登录验证,进货管理,售货管理,信息查询等等,适合做课程设计呢,喜欢的小伙伴可以来看看呢实现功能:库存管理销售管理信息查询系统进货售货库存查询 进货查询 售货查询退出超市数据库进货表(顺序码,条形码,进价,采购数量,采购日期)售货表(顺序码,条形码,数量,零售价,日期时间)库存表(条形码,商品名称,库存量,生产厂商,商品规格,零售价)用户表(顺序码,用户名._数据库超市管理系统

史上最全BI知识全解,万字长文带你读懂BI-程序员宅基地

文章浏览阅读487次。这种独立的、单独的面向前端的商业智能BI分析工具,他们更多的定位是部门级和个人级的商业智能BI 分析工具,对于深层次的需要复杂数据处理、集成、建模等很多场景是无法解决的。从市场宣传和销售的角度来说,简化产品的复杂度和上手难度的宣传是没有问题的,有问题的是以一种错误的讲解、不专业的讲解最终误导企业接受了这些不正确的概念,并以这些不正确的概念来评估与规划 商业智能BI 项目的建设,没有充分预计到 商业智能BI 项目建设过程中可能会遇到的挑战与风险,最后导致项目的不成功与失败、反复建设。

华为数据湖的3大特点、6个标准、入湖流程_数据入湖的六个标准-程序员宅基地

文章浏览阅读3.4k次,点赞3次,收藏22次。3大特点、6个标准、入湖流程01 数据湖的3个特点1. 逻辑统一2. 类型多样3. 原始记录02 数据入湖的6个标准1. 明确数据Owner2. 发布数据标准3. 认证数据源4. 定义数据密级5. 数据质量评估6. 元数据注册03 数据入湖方式1. 批量集成(Bulk/Batch Data Movement)2. 数据复制同步(Data Replication/Data Synchronization)3. 消息集成(Message-Oriented Movement of Data)4. 流集成(Stre_数据入湖的六个标准

随便推点

利用RMAN进行Oracle数据库的异构迁移(Windows to Linux)_set newname for database-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏6次。1、 名称解释RMAN:RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。冷备:数据库关闭状态时进行备份CRS:Cluster Ready Service(Oracle集群就绪服务)RAC:RAC是real application clusters的缩写,译为“实时应用集群”, 是Ora..._set newname for database

一文教你懂得什么什么是EMC(电磁兼容)_emc三要素-程序员宅基地

文章浏览阅读1.9w次,点赞31次,收藏344次。EMC(电磁兼容)一直是电路设计和PCB设计中的难题。EMS是指设备在电磁环境中可以正常工作并且不对其它的设备造成干扰。EMS可以分为两部分,一个是EMI(电磁干扰),一个是EMS(电磁敏感度)。EMI是设备本身对于其他设备的攻击性,而EMS是设备本身对于其它设备抗干扰的能力。EMC测试结果的评价A级:实验中技术性能指标正常B级:试验中性能暂时降低,功能不丧失,实验后能自行恢复C级:功能允许丧失,但能自恢复,或操作者干预后能恢复R级:除保护元件外,不允许出现因设备(元件)或软件损坏数据丢失而造成不能_emc三要素

认识 ORM 框架 Hibernate,为什么 2022 年了还在谈论它?_为什么还有2023人在用hibernate-程序员宅基地

文章浏览阅读709次。Hibernate 作为一种全自动 ORM 框架,在几年前常与 Spring、Struts2 一起使用。伴随着 MyBatis 的诞生,以及 Hibernate 本身的一些缺陷,如今 Hibernate 已经慢慢淡出了大家的视野。有时我们还会将其与 MyBatis 做一些对比,不过由于很多同学没有使用过它,可能查阅一些资料后还是云里雾里的,因此有必要对 Hibernate 有一个入门级的认识。........._为什么还有2023人在用hibernate

css中设置多张背景图片_css 多个背景图-程序员宅基地

文章浏览阅读1.4w次,点赞3次,收藏30次。有一些应用场景中,我们需要叠加设置多张图片,一般我们可能是采用img来设置,但还有一种更简单的方法,采用背景属性来设置,css提供了可同时设置多张背景图的属性。语法如下:.bg{ background: url('../img/bg1.png'), url('../img/bg2.png'), url('../img/bg3.png')}为不同的背景图片..._css 多个背景图

dataTables-使用详细说明整理,还有各种参数、回调方法-程序员宅基地

文章浏览阅读2.5w次。本文共四部分:官网 | 基本使用|遇到的问题|属性表一:官方网站:[http://www.datatables.net/]二:基本使用:[http://www.guoxk.com/node/jquery-datatables]1、DataTables的默认配置$(document).ready(function() {$('#example').dataTabl_datatables

联想笔记本电脑换掉原装系统后无法进BIOS不完美解决办法_电脑进不了bios-程序员宅基地

文章浏览阅读1.1w次。我一台联想笔记本电脑,之前的每张坏了,都不能恢复出厂。所以换了原装的win10系统,结果发现F2进了不BIOS,也不能修改启项,F12启动菜单也无效,都是直接进系统。网上逛了很久才找到解决办法,不完美,但可以解决。我不知道别的牌子机器是不是也这样,反正我的联想笔记本电脑是这样,而且我上网查了一下,很多联想笔记本都这样。只要是把原带的系统换掉,一定进不了BIOS。进BIOS的F2和启动设备菜单F12都没用,必须从恢复出厂页面进BIOS。刷BIOS可以解决,但联想刷BIOS程序要检测BIOS版本,如_电脑进不了bios