React 安装使用 Less(详细流程,包含 webpack、craco 方式)
一、简介
React项目开发中可能会使用到Less、Sass等样式预处理器,create-react-app创建的React项目,默认就是支持Sass的。如果需要使用Less则需要额外手动安装配置。
二、方式一:webpack.config.js 配置(不推荐)
-
由于需要暴露隐藏的配置文件,不利于项目升级,不推荐使用。
-
安装
less与less-loader$ npm i less less-loader -S # 或 $ yarn add less less-loader -S -
暴露
webpack配置文件。(提示:该操作不可逆,长远考虑不推荐使用该方案)$ npm run eject -
修改
webpack.config.js配置文件首先要找到以下代码,可以使用
VSCode查询功能直接找到,搜索内容为sass:// style files regexes const cssRegex = /\.css$/; const cssModuleRegex = /\.module\.css$/; const sassRegex = /\.(scss|sass)$/; const sassModuleRegex = /\.module\.(scss|sass)$/;仿照格式,在下面配置
less:// style files regexes const cssRegex = /\.css$/; const cssModuleRegex = /\.module\.css$/; const sassRegex = /\.(scss|sass)$/; const sassModuleRegex = /\.module\.(scss|sass)$/; const lessRegex = /\.less$/; const lessModuleRegex = /\.module\.less$/;继续向下搜索
sass,能够找到以下代码:... {test: sassRegex,exclude: sassModuleRegex,use: getStyleLoaders({importLoaders: 3,sourceMap: isEnvProduction? shouldUseSourceMap: isEnvDevelopment,modules: {mode: 'icss',},},'sass-loader'),// Don't consider CSS imports dead code even if the// containing package claims to have no side effects.// Remove this when webpack adds a warning or an error for this.// See https://github.com/webpack/webpack/issues/6571sideEffects: true, }, // Adds support for CSS Modules, but using SASS // using the extension .module.scss or .module.sass {test: sassModuleRegex,use: getStyleLoaders({importLoaders: 3,sourceMap: isEnvProduction? shouldUseSourceMap: isEnvDevelopment,modules: {mode: 'local',getLocalIdent: getCSSModuleLocalIdent,},},'sass-loader'), }, ...和之前配置一样,仿照
sass配置,添加less配置:... // config less {test: lessRegex,exclude: lessModuleRegex,use: getStyleLoaders({importLoaders: 3,sourceMap: isEnvProduction? shouldUseSourceMap: isEnvDevelopment,},'less-loader'), sideEffects: true, }, {test: lessModuleRegex,use: getStyleLoaders({importLoaders: 3,sourceMap: isEnvProduction? shouldUseSourceMap: isEnvDevelopment,modules: {getLocalIdent: getCSSModuleLocalIdent,},},'less-loader'), }, ... -
到这就完成了
webpack.config.js配置less,重启项目则可使用less样式了。
三、方式二:craco.config.js 配置(推荐)
-
安装
craco$ npm i @craco/craco # 或 $ yarn add @craco/craco -
安装
less与craco-less$ npm i less craco-less # 或 $ yarn add less craco-less -
修改
package.json文件"scripts": {// "start": "react-scripts start",// "build": "react-scripts build",// "test": "react-scripts test","start": "craco start","build": "craco build","test": "craco test","eject": "react-scripts eject" } -
补充:下载装饰器(可选,看情况使用)
$ npm i @babel/plugin-proposal-decorators -S # 或 $ yarn add @babel/plugin-proposal-decorators -S -
根目录创建,并配置
craco.config.js文件const path = require('path') const lessPlugin = require("craco-less");module.exports = {// 插件plugins: [{plugin: lessPlugin,options: {lessLoaderOptions: {lessOptions: {// antdv 主题之类的配置// modifyVars: { "@primary-color": "#1DA57A" },javascriptEnabled: true}}}}],// 如果没安装,可以删除babel: {plugins: [["@babel/plugin-proposal-decorators", { legacy: true }]]} }
相关文章:
React 安装使用 Less(详细流程,包含 webpack、craco 方式)
一、简介 React 项目开发中可能会使用到 Less、Sass 等样式预处理器,create-react-app 创建的 React 项目,默认就是支持 Sass 的。如果需要使用 Less 则需要额外手动安装配置。 二、方式一:webpack.config.js 配置(不推荐&#…...
力扣(LeetCode)算法_C++—— 快乐数
编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1࿰…...
滴滴笔试——算式转移
题目:给出一个仅包含加减乘除四种运算符的算式(不含括号),如12*3/4,在保持运算符顺序不变的情况下,现在你可以进行若干次如下操作:如果交换相邻的两个数,表达式值不变,那么你就可以交换这两个数…...
[LeetCode] 128. 最长连续序列
题目描述 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出&…...
docker 安装rabbitmq
前提:安装好docker docker安装_Steven-Russell的博客-CSDN博客 centos7安装docker_centos7 docker 安装软件_Steven-Russell的博客-CSDN博客 1、启动docker systemctl start docker 2、下载镜像 // 可以先search查询一下可用镜像,此处直接下载最新版本…...
一文概览NLP句法分析:从理论到PyTorch实战解读
目录 一、引言 二、句法与语法:定义和重要性 什么是句法? 例子 什么是语法? 例子 句法与语法的重要性 句法的重要性 语法的重要性 三、句法理论:历史与分类 生成语法(Generative Grammar) 背景…...
NPM 常用命令(三)
目录 1、npm compltion 1.1 描述 2、npm config 2.1 常用命令 2.2 描述 set get list delete edit fix 2.3 配置 json global editor location long 3、npm dedupe 3.1 描述 3.2 配置 4、npm deprecate 4.1 命令使用 4.2 描述 4.3 配置 registry ot…...
UWB学习——day1
UWB定义 UWB:Ultra Wideband(超宽频) UWB所谓的超宽频区别于其它近场通信技术可总结为时域上跳跃,频域上矮胖 从图中可以看出,时域上通过短且强的脉冲信号,频域上主要是超宽的频谱(Spectrum&a…...
2023国赛数学建模C题模型代码
C题代码全部都完成了,可以看文末名片 我们先看C题的一个背景 在生鲜商超中,蔬菜类商品保鲜期短,且品相会随销售时间增加而变差。商超需要根据历史销售和需求每天进行补货。由于蔬菜品种众多、产地不同,补货时间在凌晨,商家须在不明确具体单品和价格的情况下进行补…...
2023年高教社杯数学建模国赛C题详细版思路
C 题 蔬菜类商品的自动定价与补货决策 2023年国赛如期而至,为了方便大家尽快确定选题,这里将对C题进行解题思路说明,以分析C题的主要难点、出题思路以及选择之后可能遇到的难点进行说明,方便大家尽快找到C题的解题思路。 难度排…...
互联网摸鱼日报(2023-09-07)
互联网摸鱼日报(2023-09-07) 36氪新闻 慕尼黑车展纪实:德系车略显“紧张” 隆基全力押注BC,光伏又要变天了? 苹果Vision Pro也逃不过Windows XP系统 官宣造车两年后,小米仍在等待重估 抖音苹果店开业,卖iPhone抢热…...
并行处理系统
并行处理系统概述 并行处理的主要技术问题: 互连:如何实现将多个计算模块和多个存储模块进行互连,并通过控制这些模块的并行工作来提高处理速度数据一致性:为加快数据处理的速度,通常利用程序访问的局部性特性&#x…...
2023国赛数学建模A题思路分析 - 定日镜场的优化设计
# 1 赛题 A 题 定日镜场的优化设计 构建以新能源为主体的新型电力系统, 是我国实现“碳达峰”“碳中和”目标的一项重要 措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。 定日镜是塔式太阳能光热发电站(以下简称塔式电站)收集太阳能的基本组件&…...
git企业级使用
1.初始Git 1.1创建Git仓库 要提前说的是,仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来。创建⼀个Git本地仓库对应的命令为 git init ,注意命令要在⽂件⽬录下执⾏,例如:…...
[docker]笔记-存储管理
1、docker数据存储分为非永久性存储和永久性存储。 非永久性存储:容器创建会默认创建非永久性存储,该存储从属于容器,生命周期与容器相同,会随着容器的关闭而消失(可理解为内存中数据,会随关机而消失&…...
记录获取蓝鲸智云token的过程
一、使用python脚本获取蓝鲸智云token python版本环境:3.11 # -*- coding: utf-8 -*- import requestsdef get_user_token(domain,user,password):模拟用户登录,并返回 bk_token 和 bk_csrftokenBK_PAAS_HOST domainUSERNAME userPASSWORD password…...
C语言AES加密解密字符串与16进制数据
文章目录 AES介绍C语言加密库加密解密16进制数据加密解密字符串数据base64编码aes加密字符串aes解密字符串解密中文字符加密库源代码AES介绍 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标…...
NIFI实现JSON转SQL并插入到数据库表中
说明 本文中的NIFI是使用docker进行安装的,所有的配置参考:docker安装Apache NIFI 需求背景 现在有一个文件,里面存储的是一些json格式的数据,要求将文件中的数据存入数据库表中,以下是一些模拟的数据和对应的数据库…...
【canal系】canal集群异常Could not find first log file name in binary log index file
这里先说明下这边使用的canal版本号为1.1.5 在描述这个问题之前,首先需要简单对于canal架构有个基本的了解 canal工作原理 canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议MySQL master 收到 dum…...
ESP32C3 PWM输出
目前对于遥控双发差速小飞机计划采用如下架构: ESP32C3做主控,兼具遥控收发和飞行控制锂电池供电,带电量检测双发,720空心杯电机,55mm桨,带电流检测MPU6050加速度计和陀螺仪预留4个控制信号输出 马达控制要…...
Kubernetes 与边缘计算集成最佳实践
Kubernetes 与边缘计算集成最佳实践 一、前言 哥们,别整那些花里胡哨的。边缘计算是现代云原生架构的重要组成部分,今天直接上硬货,教你如何在 Kubernetes 中集成边缘计算。 二、边缘计算架构模式 模式适用场景优势劣势集中式简单场景管理简单…...
Carsim Tiretester保姆级教程:从零生成轮胎特性曲线(附完整Excel数据导入流程)
Carsim Tiretester保姆级教程:从零生成轮胎特性曲线(附完整Excel数据导入流程) 刚接触车辆动力学仿真的工程师或学生,常常会被轮胎特性曲线的生成过程困扰。轮胎作为车辆与地面唯一的接触点,其力学特性直接影响整车的操…...
解锁RO游戏自动化工具:从效率瓶颈到智能辅助的实践指南
解锁RO游戏自动化工具:从效率瓶颈到智能辅助的实践指南 【免费下载链接】openkore A free/open source client and automation tool for Ragnarok Online 项目地址: https://gitcode.com/gh_mirrors/op/openkore 在MMORPG游戏领域,重复刷怪、繁琐…...
Qwen3-Reranker-0.6B效果展示:长文档片段(32K)语义匹配能力实测
Qwen3-Reranker-0.6B效果展示:长文档片段(32K)语义匹配能力实测 1. 引言:当搜索遇到“大海捞针” 你有没有过这样的经历?面对一份几十页的PDF报告,或者一个包含数千条记录的数据库,想快速找到…...
别再被‘万向死锁’吓到了!一个拧瓶盖的日常例子,5分钟搞懂欧拉角和四元数的区别
从拧瓶盖到游戏开发:用生活常识破解万向死锁之谜 想象一下,你正试图拧开一瓶顽固的矿泉水瓶盖。第一次尝试,你顺时针旋转瓶盖——没动静;于是你调整手腕角度再次尝试,这次瓶盖却意外滑脱了方向。这种日常挫败感&#x…...
解锁Audacity:5个零成本音频处理功能彻底改变你的创作流程
解锁Audacity:5个零成本音频处理功能彻底改变你的创作流程 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 价值定位:为什么Audacity是音频创作者的必备工具 在音频编辑领域,专…...
智能序列自动化执行完全指南:从技能管理痛点到战斗效能提升的5步解决方案
智能序列自动化执行完全指南:从技能管理痛点到战斗效能提升的5步解决方案 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. It uses Travis for UnitTests, Coveralls to report on t…...
Claude Tool Use 怎么用?从零到生产的完整教程(2026)
上周接了个需求,做一个能查天气、查数据库、还能发邮件的 AI 助手。一开始想着用 LangChain 套一层,后来发现 Claude 原生的 Tool Use(也叫 Function Calling)已经很成熟了,根本不需要额外框架。但官方文档写得有点绕&…...
【PVE实战】低成本2.5G网卡升级与iperf3性能验证全记录
1. 为什么需要升级到2.5G网络环境 最近几年,随着NAS、视频剪辑、虚拟机等应用场景的普及,传统的千兆网络(1Gbps)越来越显得力不从心。我自己就经常遇到这样的情况:在局域网内传输大文件时,千兆网络的极限速…...
手把手教你用NEWLab搭建智能温控系统(附完整代码)
手把手教你用NEWLab搭建智能温控系统(附完整代码) 在智能家居和工业自动化领域,温度控制始终是核心需求之一。无论是保持室内舒适环境,还是确保精密设备的稳定运行,一套可靠的温控系统都不可或缺。对于物联网初学者和…...
