当前位置: 首页 > news >正文

VuePress2配置unocss的闭坑指南

文章目录

    • 1. 安装依赖:准备魔法材料
    • 2. 检查依赖版本一定要一致:确保魔法配方准确无误
    • 3. 新建uno.config.js:编写咒语书
    • 4. 配置config.js和client.js:完成仪式

1. 安装依赖:准备魔法材料

在开始我们的前端魔法之前,我们需要准备好所有必要的魔法材料——即安装正确的依赖项。这一步骤至关重要,因为它奠定了我们整个项目的基础。

首先,我们将引入unocss以及@unocss/preset-rem-to-px。后者是专门用来将rem单位转换为px的预设,因为UnoCSS默认使用的是rem单位,而有时我们可能更倾向于直接使用像素值来定义样式。尽管UnoCSS允许你通过类似m-l-10px的方式直接指定像素,但为了代码的一致性和可读性,使用预设来统一处理单位转换是一个更好的选择。

安装这两个依赖项非常简单,只需要运行以下命令:

pnpm add -D unocss @unocss/preset-rem-to-px

接下来,我们要特别关注VuePress与它的Vite打包器之间的版本兼容性问题。以下是推荐的devDependencies配置:

"devDependencies": {"@vuepress/bundler-vite": "2.0.0-rc.19","@vuepress/theme-default": "2.0.0-rc.49","sass-embedded": "^1.79.4","unocss": "^0.64.0","@unocss/preset-rem-to-px": "^0.64.0","vue": "^3.5.10","vuepress": "2.0.0-rc.19","vuepress-theme-plume": "1.0.0-rc.121"
}

这里强调的是@vuepress/bundler-vitevuepress两个包必须保持一致的版本号,以避免由于版本不匹配导致的白屏或其他异常错误。其他如主题等组件,则应该根据需要选择相匹配的版本。

2. 检查依赖版本一定要一致:确保魔法配方准确无误

在魔法世界中,配方的准确性决定了最终效果的成功与否。同样地,在前端开发里,依赖项的版本一致性也是至关重要的。正如前面提到的,@vuepress/bundler-vitevuepress必须具有相同的版本号。这是因为它们之间有着紧密的合作关系;一个负责构建工具链,另一个则是核心框架本身。如果两者版本不同步,可能会引发各种意想不到的问题,比如页面加载失败、样式错乱或是交互逻辑失效等。

此外,对于UnoCSS及其预设@unocss/preset-rem-to-px来说,也应尽量保证它们处于相同的主要版本系列内,这样可以最大限度地减少潜在冲突,确保功能正常运作。至于其他依赖,如Vue或特定的主题插件,则需根据官方文档或者社区反馈来决定最合适的版本组合。

3. 新建uno.config.js:编写咒语书

现在我们已经有了所有的魔法材料,接下来就是编写咒语书的时间了。在这个阶段,我们需要创建一个名为uno.config.js的文件,用于配置UnoCSS的行为。这份配置文件就像是魔法师手中的咒语书,它指导着UnoCSS如何为我们生成所需的样式规则。

以下是示例配置:

import { defineConfig, presetUno, presetAttributify } from 'unocss';
import presetRemToPx from '@unocss/preset-rem-to-px';export default defineConfig({presets: [presetUno(),presetAttributify(),presetRemToPx({baseFontSize: 4,}),],content: {filesystem: ["**/*.{html,vue,md}"],},
});

在这里,presetRemToPx被设置了一个基础字体大小为4px,这意味着当你写下像m-l-4这样的样式时,实际上就是在设定margin-left: 4px。这种做法不仅简化了样式控制,还提高了代码的可维护性和一致性。

4. 配置config.js和client.js:完成仪式

最后两步是为了确保一切顺利运行所做的收尾工作。首先是配置docs/.vuepress/config.js,这是VuePress站点的核心配置文件。我们将在此处引入UnoCSS并配置VuePress以使用Vite作为打包器。

import { viteBundler } from "@vuepress/bundler-vite";
import { defineUserConfig } from "vuepress";
import UnoCSS from 'unocss/vite';export default defineUserConfig({// 请不要忘记设置默认语言bundler: viteBundler({viteOptions: {plugins: [UnoCSS(),],},}),});

这段代码使得我们在启动VuePress站点时,能够正确加载UnoCSS插件,并利用Vite提供的快速热更新和其他优化特性。

紧接着,在docs/.vuepress/client.js中,我们还需要引入UnoCSS的样式文件。这一步类似于施法过程中的最后一个手势,标志着整个魔法仪式的完成。

import "virtual:uno.css";

这段简单的导入语句确保了当用户访问我们的网站时,UnoCSS的样式能够立即生效,从而为他们带来流畅且美观的浏览体验。

至此,我们已经完成了VuePress结合Vite打包器与UnoCSS的所有配置步骤。希望这篇指南能帮助你在前端开发的路上更加得心应手,创造出令人惊艳的作品。记住,每一次技术的选择都是一场新的冒险,愿你在这条道路上不断探索,发现更多可能性。
在这里插入图片描述

相关文章:

VuePress2配置unocss的闭坑指南

文章目录 1. 安装依赖:准备魔法材料2. 检查依赖版本一定要一致:确保魔法配方准确无误3. 新建uno.config.js:编写咒语书4. 配置config.js和client.js:完成仪式 1. 安装依赖:准备魔法材料 在开始我们的前端魔法之前&…...

海陵HLK-TX510人脸识别模块 stm32使用

一.主函数 #include "stm32f10x.h" // Device header #include "delay.h" #include "lcd.h" #include "dht11.h" #include "IOput.h" #include "usart.h" //#include "adc.h" …...

安卓14无法安装应用解决历程

客户手机基本情况: 安卓14,对应的 targetSdkVersion 34 前天遇到了安卓14适配问题,客户发来的截图是这样的 描述:无法安装我们公司的B应用。 型号:三星google美版 解决步骤: 1、寻找其他安卓14手机测试…...

【Linux】传输层协议UDP

目录 再谈端口号 端口号范围划分 UDP协议 UDP协议端格式 UDP的特点 UDP的缓冲区 UDP注意事项 进一步深刻理解 再谈端口号 在上图中,有两个客户端A和B,客户端A打开了两个浏览器,这两个客户端都访问同一个服务器,都访问服务…...

玩机搞机基本常识-------列举安卓机型一些不常用的adb联机命令

前面分享过很多 常用的adb命令,今天分享一些不经常使用的adb指令。以作备用 1---查看当前手机所有app包名 adb shell pm list package 2--查看当前机型所有apk包安装位置 adb shell pm list package -f 3--- 清除指定应用程序数据【例如清除浏览器应用的数据】 …...

unity学习14:unity里的C#脚本的几个基本生命周期方法, 脚本次序order等

目录 1 初始的C# 脚本 1.1 初始的C# 脚本 1.2 创建时2个默认的方法 2 常用的几个生命周期方法 2.1 脚本的生命周期 2.1.1 其中FixedUpdate 方法 的时间间隔,是在这设置的 2.2 c#的基本语法别搞混 2.2.1 基本的语法 2.2.2 内置的方法名,要求更严…...

pytorch 比较两个张量的是否相等的函数介绍

在 PyTorch 中,可以使用多种函数来比较两个张量是否相等,具体选择取决于对比较精度的需求以及可能的数值误差。以下是常用的比较方法: 1. 完全相等的比较 (1) torch.eq 逐元素比较两个张量是否相等,返回布尔张量。 import torc…...

MySQL Windows 11 的 MySQL 配置文件 (my.ini) 路径查找指南

✅ Windows 11 的 MySQL 配置文件 (my.ini) 路径查找指南 在 Windows 11 上,MySQL 的 ini 配置文件(通常是 my.ini 或 my.cnf)的位置取决于 MySQL 的安装方式。下面是一些常见的路径和方法来找到这个配置文件。 🔍 方法 1&#…...

06-RabbitMQ基础

目录 1.初识MQ 1.1.同步调用 1.2.异步调用 1.3.技术选型 2.RabbitMQ 2.1.安装 2.2.收发消息 2.2.1.交换机 2.2.2.队列 2.2.3.绑定关系 2.2.4.发送消息 2.3.数据隔离 2.3.1.用户管理 2.3.2.virtual host 3.SpringAMQP 3.1.导入Demo工程 3.2.快速入门 3.2.1.消…...

关于markdown实现页面跳转(调查测试:csdn(博客编写效果、发布效果)、typroa中md转pdf的使用情况)

一-方法介绍 [点击跳转到标题0](#1) <a href"#2">正文2</a>### <span id"2">标题0</span>二、跳转测试区 点击跳转到标题0 正文2 三、测试结果 场景MDspan-可标题写博客时候&#xff0c;右侧显示区效果可以发布博客的效果可以…...

el-dialog 组件 在<style lang=“scss“ scoped>标签

vue3 中使用element-plus的el-dialog 组件 <style> .el-dialog.plan-text-pdf .el-dialog__body {height: 1485px; // 需要在 style 标签写。 建议新增个类名 .plan-text-pdf 防止重复样式 } </style><style lang"scss" scoped> :deep() .el-dial…...

《深度学习梯度消失问题:原因与解决之道》

在深度学习的训练过程中&#xff0c;梯度消失是一个常见且棘手的问题&#xff0c;它会严重影响模型的训练效果和性能。以下是对该问题的原因分析与解决办法。 梯度消失问题的原因 首先是激活函数选择不当。像Sigmoid和Tanh这类传统激活函数&#xff0c;在输入值较大或较小时&…...

中高级运维工程师运维面试题(十一)之 Docker

目录 往期回顾前言基础知识1. 什么是 Docker&#xff1f;2. Docker 的核心组件有哪些&#xff1f;3. Docker 镜像和容器有什么区别&#xff1f;4. 什么是 Dockerfile&#xff1f; 高级知识5. 什么是多阶段构建&#xff1f;如何使用&#xff1f;6. Docker 网络有哪些模式&#x…...

Gitee图形界面上传(详细步骤)

目录 1.软件安装 2.安装顺序 3.创建仓库 4.克隆远程仓库到本地电脑 提交代码的三板斧 1.软件安装 Git - Downloads (git-scm.com) Download – TortoiseGit – Windows Shell Interface to Git 2.安装顺序 1. 首先安装git-2.33.1-64-bit.exe&#xff0c;顺序不能搞错2. …...

WebSocket 实现指南

WebSocket 实现指南 目录 1. 依赖安装 1.1 安装必要的包 # 安装 gorilla/websocket go get github.com/gorilla/websocket# 安装 gin 框架 go get github.com/gin-gonic/gin1.2 更新 go.mod require (github.com/gin-gonic/gin v1.9.1github.com/gorilla/websocket v1.5.3…...

TRELLIS - 生成 3D 作品的开源模型

TRELLIS 是一个大型 3D 资产生成模型。它接收文本或图像提示&#xff0c;并生成各种格式的高质量 3D 资产&#xff0c;例如 Radiance Fields、3D Gaussians 和网格。TRELLIS 的基石是统一的结构化 LATent &#xff08;SLAT&#xff09; 表示&#xff0c;它允许解码为不同的输出…...

uni-app图文列表到详情页面切换

需求&#xff1a;参考若依框架后&#xff0c;想实现首页浏览文章列表&#xff0c;没有合适的样式参考&#xff0c;所以需要有效果做到“图文列表到详情页面切换”&#xff0c;查阅了一下案例 发现有相应的案例&#xff0c;在导航栏“模板”中找到了 DCloud 插件市场 PC电脑端访…...

ros2-3.4话题通信最佳实践

3.4.1 工程架构设计 需求背景&#xff1a; 第一&#xff0c;通过这个小工具可以看到系统的实时状态信息包括记录信息的时间、主机名称、CPU使用率、内存使用率、内存总大小、剩余内存、网络接收数据量和网络发送数据量; 第二&#xff0c;要有一个简单的界面&#xff0c;可以将…...

Vmware安装centos

用来记录自己安装的过程 一、创建虚拟机安装centos镜像 点击完成后&#xff0c;等待一会会进入centos的系统初始化界面 二、centos初始化配置 三、配置网络 1、虚拟网络编辑器&#xff0c;开启VMnet1、VMnet8的DHCP vmware左上角工具栏&#xff0c;点击【编辑】->【虚拟网…...

51单片机——按键实验

由于机械点的弹性作用&#xff0c;按键开关在闭合时不会马上稳定的接通&#xff0c;在断开时也不会一下子断开&#xff0c;因而在闭合和断开的瞬间均伴随着一连串的抖动。抖动时间的长短由按键的机械特性决定的&#xff0c;一般为 5ms 到 10ms&#xff0c;为了确保 CPU 对按键的…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...