vue-使用sass定义全局样式及变量

2023-11-14

vue-cli2使用sass定义全局样式及变量

vue-cli2创建的vue项目使用sass预处理器需按顺序安装以下插件,其中sass-loader版本和node-sass需要安装固定版本,其他的依赖不要求版本,亲测有效。如果不不固定sass-loader和node-sass的版本,可能会报出一些运行时的错误:Node Sass version 5.0.0 is incompatible with^4.0.0

Node Sass version 5.0.0 is incompatible with^4.0.0

需要卸载已安装的sass-loader和node-sass,除以下方式外也可以在package.json中手动将sass-loader和node-sass的版本修改为指定的7.3.1和4.14.1版本

npm uninstall node-sass
npm install node-sass@4.14.1
"@babel/core": "^7.12.3",
"sass-resources-loader": "^2.1.1",
"sass-loader": "^7.3.1",
"node-sass": "^4.14.1",

build/utils.js中配置exports.cssLoaders中return部分,配置如下:

  // https://vue-loader.vuejs.org/en/configurations/extract-css.html
  return {
    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders('less'),
    sass: generateLoaders('sass', { indentedSyntax: true }),
    scss: generateLoaders('sass').concat(
      {
        loader: 'sass-resources-loader',
        options: {
          resources: path.resolve(__dirname, '../src/assets/css/var.scss') //这里是单独建的存放变量的scss,我的是 var.scss
        }
      }
    ),
    stylus: generateLoaders('stylus'),
    styl: generateLoaders('stylus')
  }

/src/assets/css/var.scss文件中是定义的全局的sass变量,例如色值变量:

$link-blue: #2b83e6;
$yellow-green: #b0eb00;
$gray: #595959;
$dark-gray: #363636;
$light-gray: #a6a6a6;

main.js文件中也可以引入公共的scss样式,如清除浮动,去除padding之类的样式,main.js中的引入方式如下:

import './assets/css/global.scss'

global.scss文件如下:

*{
  padding: 0;
  margin: 0;
}
clearfix:after{
  content: "";
  display: block;
  height: 0;
  clear:both;
  visibility: hidden;
}
.clearfix{
  *zoom: 1;/*ie6清除浮动的方式 *号只有IE6-IE7执行,其他浏览器不执行*/
}

如果在main.js中引入global.scss文件时,出现如下报错:* ./assets/css/global.scss in ./src/main.js

 ERROR  Failed to compile with 1 errors                                                                           8:47:07


This relative module was not found:

* ./assets/css/global.scss in ./src/main.js
Error from chokidar (D:\): Error: EBUSY: resource busy or locked, lstat 'D:\pagefile.sys'

需要在build/文件中module.rule去掉类似如下的对scss文件的处理:

{
    test: /\.scss$/,
    loader:'style!css!sass'
}

vue-cli3使用sass定义全局样式及变量

vue-cli3创建的项目无需配置,可以直接在vue文件中使用lang="scss"

vue-cli3中要使用全局定义的色值变量需要在vue.config.js中配置

module.exports = {
  // ...
  css: {
    loaderOptions: {
      sass: {
        data: `@import "@/assets/css/var.scss";`
      }
    }
  }
}

在vue文件中使用全局变量的方式如下:

<template></template>
<script></script>
<style lang="scss" scoped>
button{
color: $link-blue;
}
</style>

github项目地址:https://github.com/xiaoaiai/vue-sass-test

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue-使用sass定义全局样式及变量 的相关文章

随机推荐

  • 《深度学习》读书笔记:第3章 概率与信息论

    目录 第3章 概率与信息论 3 1 为什么要使用概率 3 2 随机变量 3 3 概率分布 3 3 1 离散型变量和概率质量函数 3 3 2 连续型变量和概率密度函数 3 4 边缘概率 3 5 条件概率 3 6 条件概率的链式法则 3 7 独
  • 九、网络IO原理-创建ServerSocket的过程

    示例 创建ServerSocker过程 创建ServerSocket并注册端口号8090 ServerSocket server new ServerSocket 8090 while true 循环 final Socket socket
  • [Tools: tiny-cuda-nn] Linux安装

    official repo https github com NVlabs tiny cuda nn 该包可以显著提高NeRF训练速度 是Instant NGP Threestudio和NeRFstudio等框架中 必须使用的 1 命令行安
  • iOS开发之Runtime运行时机制

    摘要 Objective C是基于C加入了面向对象特性和消息转发机制的动态语言 除编译器之外 还需用Runtime系统来动态创建类和对象 进行消息发送和转发 作者通过分析Apple开源的Runtime代码来深入理解OC的Runtime机制
  • js实现模仿广告弹出并关闭弹窗

    css部分
  • 字符串转换整数 (atoi)

    字符串转换整数 atoi 请你来实现一个myAtoi string s 函数 使其能将字符串转换成一个 32 位有符号整数 类似 C C 中的 atoi 函数 函数myAtoi string s 的算法如下 读入字符串并丢弃无用的前导空格
  • linux系统忘记记密码怎么办

    linux 此次操作系统为 CentOS Linux release 7 5 1804 Core 1 重启linux 进入系统的GRUB菜单界面 按下小写字母e进入编辑界面 进入如下画面 2 按下方向键 找到以字符串Linux16开头的行
  • 物联网改造体育产业,这些常见球类都成了数据终端

    从智能手机 衣服 汽车到冰箱 物联网意味着几乎任何物件都可以连接到网络 通过物件里含有的传感器之间的通信和同步 我们获得了大量的数据 这些数据经过分析和处理 产生了大数据智能 现在 物联网 大数据智能不仅仅是一种时尚 一个流行语 更将彻底改
  • pppoe 拨号过程

    PPPoE 拔号过程 发现阶段解析 文档编号 834 浏览 14295 评分 73 最后更新于 2011 02 11 PPPoE拔号的发现阶段 Discovery PPPoE的发现阶段一共分为 4步 分别是 PADI PPPoE Activ
  • 什么是图神经网络

    2019年可以说是图神经网络元年 01 什么是图神经网络 1 图和属性图 要了解图神经网络 首先要了解图 图是由节点和边组成的 如下图所示 一般图中的节点表示实体对象 比如一个用户 一件商品 一辆车 一张银行卡等都可以作为节点 边代表事件或
  • 服务器windows操作系统安装,服务器windows操作系统的安装.doc

    服务器windows操作系统的安装 Windows 2K3 2K8系统的安装 注 在这两个操作系统的安装中尤其要注意RAID卡驱动的加载 Windows server 2003标准版的安装 一 准备工作 Windows 2003标准版的安装
  • Unity之三:配置向导

    文章目录 一 C标准 编译器 微控制器 二 选项 2 1 整数类型 2 1 1 UNITY EXCLUDE STDINT H 2 1 2 UNITY EXCLUDE LIMITS H 2 1 3 UNITY INT WIDTH 2 1 4
  • 项目重构之起始

    百层之台始于累土 合抱之木生于毫末 转眼间来到公司已历三个寒暑 愈加光亮鬓角 隆起的肚腩 无不彰显着开发功力日渐深厚 公司的产品也从H5商城成长为了一款app 步入了他的青年阶段 也许是青春期的原因 也许是成长路上各种功能迭代导致 总而言之
  • Keil5(MDK5)在调试(debug)过程中遇到的问题

    参考原子哥教程 使用开发板 STM32F103RC Keil5 MDK5 在调试 debug 过程中崩溃 IDE已停止运行 http blog csdn net qq 33259138 article details 70224581 现象
  • Py的ipykernel:Python库介绍、安装及使用攻略

    Py的ipykernel Python库介绍 安装及使用攻略 ipykernel是一个用于在Jupyter Notebook中运行Python代码的包 它可以将Python代码转化为可以在IPython内核上运行的格式 下面我们将详细介绍如
  • C/C++中如何获取数组的长度?

    C C 中没有提供 直接获取数组长度的函数 对于存放字符串的字符数组提供了一个strlen函数获取长度 那么对于其他类型的数组如何获取他们的长度呢 其中一种方法是使 用sizeof array sizeof array 0 在C语言中习惯上
  • ctfhub技能树部分wp(潦草笔记)

    备份文件下载 vim缓存 在使用vim时会创建临时缓存文件 关闭vim时缓存文件则会被删除 当vim异常退出后 因为未处理缓存文件 导致可以通过缓存文件恢复原始文件内容 隐藏文件index php swp前加 以 index php 为例
  • 仿牛客网项目第三章:开发社区核心功能(详细步骤和思路)

    目录 1 过滤敏感词 1 1 目的 1 2 实现方法 1 3 前缀树 1 4 敏感词过滤步骤 为发帖子做准备 2 发布帖子 2 1 AJAX介绍 2 2 AJAX使用实例 3 帖子详情 3 1 实现功能 3 2 实现过程 4 事务管理 4
  • little endian && big-endian

    java 的ClassFile采用big endian存储数据 Intel x86 采用little endian Motorola采用big endian 0x1234 Intel 地址 0x4000 0000 0x34 0x4000 0
  • vue-使用sass定义全局样式及变量

    vue cli2使用sass定义全局样式及变量 vue cli2创建的vue项目使用sass预处理器需按顺序安装以下插件 其中sass loader版本和node sass需要安装固定版本 其他的依赖不要求版本 亲测有效 如果不不固定sas