前言

  如果赶时间请直接使用目录跳到解决问题的部分。  

  使用的项目使用vue脚手架生成。

npm init vue@latest

版本如下

"@vitejs/plugin-vue": "^5.0.4",
"vue": "^3.4.21"

  由于近期在学less,心想如果不能将其应用到vue项目中,无异于纸上谈兵。于是立即用vue脚手架创建了一个新的vue项目,兴冲冲地安装上了less依赖,于是漫长之路开始了。  

目的

  需要强调的是,我们的目的是,在各个vue文件中,可以不引入全局less文件就能使用less变量。

过程

注意,这个是踩坑过程,不要跟着这个做。

安装依赖

cnpm install -D less less-loader

说实话这一部分也蛮坑的,不少博客写的都是--save。

vue add style-resources-loader

这一步卡了非常久,特意花时间去了解cmd命令行的网络代理。

  接下来就众说纷纭了,有说只需要修改vue.config.js的↓

const path = require('path')
module.exports = {
pluginOptions: {
'style-resources-loader': {
preProcessor: 'less',
patterns: [
// 全局less变量存储路径
path.resolve(__dirname, './src/assets/css/base.less'),
]
}
}
}

有说要安装vue-cli-plugin-style-resources-loader这个依赖的↓

cnpm i -D vue-cli-plugin-style-resources-loader

还有的也是修改vue.config.js,不过我没试,如下图↓

  除了少部分我没有尝试的之外,这些无一例外都没有作用。于是我开始思考。从

vue add style-resources-loader

这个命令我就开始奇怪,为什么新出现的是vue.config.js而不是修改vite.config.js。经过前面的尝试后,我脑中浮现一个猜测,那就是vue.config.js根本就没有起作用,因为我们用的构建工具是vitejs,而以前的vue不是,所以这些人的说法可能没有错,但是过时了。于是我开始寻找vite的解决方法,不出意外很快就解决了问题。

解决

  首先确认我们是用vue脚手架创建项目的。

  1. 安装依赖
cnpm i less -D

走完第一步其实已经可以使用内嵌的less样式

<style lang="less" scoped>
@red: red;
.box{
.test{
height: 100px;
width: 100px;
background-color: @red;
}
}
</style>
  1. 修改vite.config.js,添加下面这段
  css: {
preprocessorOptions: {
less: {
modifyVars: {
hack: 'true; @import "@/assets/less.less"'
},
javascriptEnabled: true
}
}
}

@众所周知对应src目录,只需要对应修改这个全局less的目录即可。

对应下面的代码修改即可,加上css那部分就行了。

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue' // https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
// 核心代码
css: {
preprocessorOptions: {
less: {
modifyVars: {
hack: 'true; @import "@/assets/less.less"'
},
javascriptEnabled: true
}
}
}
})

结语

  没想到连less-loader也没有用上,前端变化太快确实是让人头疼。

vite中配置less,vue3中配置less的更多相关文章

  1. 如何在 vue3 中使用 jsx/tsx?

    我们都知道,通常情况下我们使用 vue 大多都是用的 SFC(Signle File Component)单文件组件模式,即一个组件就是一个文件,但其实 Vue 也是支持使用 JSX 来编写组件的.这 ...

  2. vue3 vite 系统标题 系统名称统一配置

    想要统一配置系统名称 或者其他的,需要在vue3中使用 vite 的环境变量 vite 的环境变量 需要创建两个文件(和 vite.config.js 文件同一目录) .env.development ...

  3. C#开发中使用配置文件对象简化配置的本地保存

    C#开发中使用配置文件对象简化配置的本地保存 0x00 起因 程序的核心是数据和逻辑,开发过程中免不了要对操作的数据进行设置,而有些数据在程序执行过程中被用户或程序做出的修改是应该保存下来的,这样程序 ...

  4. .NET Core采用的全新配置系统[7]: 将配置保存在数据库中

    我们在<聊聊默认支持的各种配置源>和<深入了解三种针对文件(JSON.XML与INI)的配置源>对配置模型中默认提供的各种ConfigurationSource进行了深入详尽的 ...

  5. CentOS7中防火墙的一些常用配置

    # 启动 systemctl start firewalld # 查看状态 systemctl status firewalld # 停止关闭 systemctl disable firewalld ...

  6. Xcode8中处理打印日志的配置

    Xcode8中处理打印日志的配置

  7. SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法

    操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...

  8. 帆软报表FineReport中数据连接之Weblogic配置JNDI连接

    1. 制作报表的原理 在帆软报表FineReport设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成J ...

  9. 帆软报表FineReport中数据连接之Websphere配置JNDI连接

    以oracle9i数据源制作的模板jndi.cpt为例来说明如何在FineReport中的Websphere配置JNDI连接.由于常用服务器的JNDI驱动过大,帆软报表FineReport中没有自带, ...

  10. Tomcat中JVM内存溢出及合理配置及maxThreads如何配置(转)

    来源:http://www.tot.name/html/20150530/20150530102930.htm Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚 ...

随机推荐

  1. MarkDown文件插入公式(常用格式)

    1.插入公式 markdown支持插入公式,书写公式需要按照特定格式来写,涉及到希腊字母.符号.角标.基本语法等内容需要熟悉, 1.1 句中插入公式 表达式前后插入$即可 ,比如$\alpha$,显示 ...

  2. (C语言)1到50的阶乘之和列表,参考用,洛谷:P1009 [NOIP1998 普及组] 阶乘之和

    1到50列表,阶乘之和 S=1!+2!+3!+⋯+n!(n≤50) 1::1 2::3 3::9 4::33 5::153 6::873 7::5913 8::46233 9::409113 10:: ...

  3. Delphi-判断一个对象是否释放,改造官方的Assigned

    直接上例子了,基础知识自己去了解,首先定义一个类: TPerson = class public name: string; age: Integer; constructor Create(name ...

  4. .NET 云原生架构师训练营(模块二 基础巩固 路由与终结点)--学习笔记

    2.3.3 Web API -- 路由与终结点 路由模板 约定路由 特性路由 路由冲突 终结点 ASP.NET Core 中的路由:https://docs.microsoft.com/zh-cn/a ...

  5. 《ASP.NET Core 与 RESTful API 开发实战》-- (第10章)-- 读书笔记

    第 10 章 部署 10.1 部署到 IIS ASP.NET Core 应用程序支持部署到 IIS 中,之后它将作为应用程序的反向代理服务器和负载均衡器,向应用程序中转传入的 HTTP 请求 默认情况 ...

  6. 《ASP.NET Core 微服务实战》-- 读书笔记(第9章)

    第 9 章 微服务系统的配置 微服务系统中的配置需要关注更多其他方面的因素,包括: 配置值的安全读写 值变更的审计能力 配置信息源本身的韧性和可靠性 少量的环境变量难以承载大型.复杂的配置信息 应用要 ...

  7. linux-Shell将命令行终端输出结果写入保存到文件中

    (一)将输出与错误写到同一个文件(1)方法1 #!bin/bashjava -jar hbase-example.jar 2>&1 | tee hbase_log.txt 说明:0,1, ...

  8. Wireguard笔记(二) 命令行操作

    目录 Wireguard笔记(一) 节点安装配置和参数说明 Wireguard笔记(二) 命令行操作 Wireguard笔记(三) lan-to-lan子网穿透和多网段并存 命令行操作 创建wg0网卡 ...

  9. phpBB3在Nginx反向代理中的X-Forwarded-For IP检查

    记录一下phpBB3对反向代理中的IP处理机制 处理几个phpBB3项目迁移, 部分运行场景转移到内网, 需要外网通过nginx/openresty之类的网关反向代理进行访问. 在网关处已经正确配置了 ...

  10. Centos7的KVM安装配置详解

    KVM和虚拟化 虚拟化有几种类型: 完全虚拟化(Full virtualization), 虚机使用原始版本的操作系统, 直接与CPU通信, 是速度最快的虚拟化. 半虚拟化(Paravirtualiz ...