在项目中使用 VitePress 作为文档常见问题:样式丢失,图标丢失,打包错误,中文配置修改等

本文总结和记录自己在使用 vitepress 作为 Vue 项目文档时遇到的问题,以及解决方法。直接进入正题:

md 文档中引入组件部分样式丢失

默认你导入的 vue 文件的 style 标签里的样式会生效,但是样式之外的样式不会生效,需要手动引入到,vitepress 主题中。

你不在 vue 文件中的样式都要引入,比如说:

  • 你使用了 element-plus 的组件库,就需要手动引入他的 css 样式。
  • 你自己写的 全局的 css 样式等,

具体做法就是:在 .vitpress 文件夹下新建 theme 文件夹 再在 theme 文件夹下新建 index.ts ,在 index.ts 文件中导入需要导入的样式。例如:

import "./src/styles/index.css";

在 md 文档中 import 的组件图标丢失

这个和上一个样式丢失一样,需要手动引入图标库 也是在 theme 文件夹下的 index.ts 中导入。这里有个坑,就是你在 main.ts 中是怎么让组件图标全局生效的就照样复刻一份,不可只引入图标,其实 vitepress 它本身就是和新开发一个 vue 项目原理类似,很多地方的思路都是相通的。例如导入 fontawesome 图标库 并使用添加 fas 包:

import { library } from "@fortawesome/fontawesome-svg-core";
import { fas } from "@fortawesome/free-solid-svg-icons";
library.add(fas);

如何把相关配置改为中文

这个是在 .vitepress 文件夹下的 config.ts 中配置 defineConfig 的 themeConfig 属性,具体配置如下:

export default defineConfig({themeConfig: {nav: [{ text: "开始使用", link: "/introduce" },{ text: "组件", link: "/components/button" }],//开启本地搜索search: {provider: "local"},//修改侧边栏导航的标题outline: {label: "页面导航"},// 修改文档页脚的文字docFooter: {prev: "上一页",next: "下一页"},returnToTopLabel: "回到顶部",sidebarMenuLabel: "菜单",darkModeSwitchLabel: "主题",lightModeSwitchTitle: "切换到浅色模式",darkModeSwitchTitle: "切换到深色模式"}
});

打包不能识别.d.ts 文件

这个问题呢是,vitepress 默认是不识别双扩展名称的(根据我自己的试验是这样的,没有看到官方解释),比如像.d.ts 文件的,如果有其他解决方案欢迎留言交流,所以需要你在原组件中,把相关报错的文件名字写完整,比如说你在 Button.vue 中导入了一个 type.d.ts 文件,改正前是:

import type { ButtonProps } from "./type";

build 的时候提示了这里导入的文件找不到,你就修正,修正后:

import type { ButtonProps } from "./type.d.ts";

一般这个时候问题就解决了,如果还不行就把./type.d.ts路径名改成绝对路径,就是基于 src 的路径名,然后重新打包。

build 打包后直接访问 index.html 时样式和图标丢失

如果你build打包之前本地访问文档是正常的,打包后访问dist文件夹中的 index.html发现样式和图标丢失的话,这个其实不是 bug,因为 build 打包的 dist 文件默认并不是静态的,包括了 server 服务,如果你仔细 build 过程观察的话,在 build 的过程中的时候出现了

building client + server bundles...

所以打包的文件夹不是静态的,所以你访问 index.html 时,css 样式丢失。这个文件在你部署的时候就正常了,如果要访问具体效果,可以使用 vitepress 提供的访问命令,在本地预览生产版本:

npm run docs:preview

这样默认会在本地 4173 端口启动服务,浏览器打开就行了。

最后

有收获的话,欢迎点赞,收藏。本文讲解了自己在使用 vitepress 作为 Vue 项目文档时遇到的问题,以及解决方法。后续如果有其他问题和解决办法,我会继续更新。如果你在使用 vitepress 的时候遇到问题,欢迎留言交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/36045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nodejs国内源下载

nodejs的官网下载太慢了 可以尝试网盘下载快一点 夸克网盘分享夸克网盘是夸克推出的一款云服务产品,功能包括云存储、高清看剧、文件在线解压、PDF一键转换等。通过夸克网盘可随时随地管理和使用照片、文档、手机资料,目前支持Android、iOS、PC、iPad。…

AI产品经理如何快速接手一个新产品?

我们到一家新的公司,往往都有现成的产品需要你熟悉,这个对你来说就是一个新产品。 又或者说,公司要搭建一个新的项目,让你负责,需要你从0开始去接手,最终去上线,去推广,去盈利&…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【14】缓存与分布式锁

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【14】缓存与分布式锁 缓存本地缓存分布式缓存-本地模式在分布式下的问题分布式缓存整合 redis 作为缓存JMeter测试出OutOfDirectMemoryError【堆外内存溢出】 高并发读下缓存失效问题缓存…

基于YOLOv5+PyQT5的吸烟行为检测(含pyqt页面、模型、数据集)

简介 吸烟不仅对个人健康有害,也可能在某些特定场合带来安全隐患。为了有效地监控公共场所和工作环境中的吸烟行为,我们开发了一种基于YOLOv5目标检测模型的吸烟检测系统。本报告将详细介绍该系统的实际应用与实现,包括系统架构、功能实现、使用说明、检测示例、数据集获取…

UDS - 10.2 DiagnosticSessionControl (10) service

10.3 诊断会话控制(10)服务 来自:ISO 14229-1-2020.pdf 10.2.1 服务说明 DiagnosticsSessionControl服务用于在服务器中启用不同的诊断会话。 诊断会话启用服务器中的一组特定诊断服务和/或功能。该服务提供了服务器可以报告对启用的诊断会话有效的数据链路层特定参数值(…

ZAP安全扫描工具

下载地址: 去官网下载:https://www.zaproxy.org/download/ 1.主动扫描 需要登录的网站建议使用主动扫描 也可以绕过登录进行手动扫描 再选择手动扫描后 获取到对应的token 2.自动扫描 3.查看报告 4.扫描策略的使用

.gitignore git添加忽略文件

在项目的根目录下创建一个名为 .gitignore 的文件。在这个文件中,列出您希望Git忽略的文件和文件夹的名称或模式。 下面是一些基本的步骤和规则: 创建 .gitignore 文件:在项目根目录下创建一个名为 .gitignore 的文件。如果没有这个文件&…

如何设计一门编程语言?

一、设计流程 步骤说明 确定语言目标和用途: 目标受众:确定是面向初学者、专业开发者还是特定领域专家。 主要用途:明确语言的主要用途,如系统编程、Web 开发、数据分析、科学计算等。 独特卖点:确定语言的独特优势…

如何使用 Python 交互式解释器?

1. 什么是Python交互式解释器? Python交互式解释器是一种REPL(Read-Eval-Print Loop)环境。它会读取用户输入的代码,执行代码,并输出结果,随后等待下一个用户输入。这种交互方式使得Python非常适合快速原型…

【Day03】0基础微信小程序入门-学习笔记

文章目录 视图与逻辑学习目标页面导航1. 声明式导航2. 编程式导航3. 导航传参 页面事件1. 下拉刷新2. 上拉触底3.扩展-自定义编译模式 生命周期1. 简介2. 生命周期函数3. 应用的生命周期函数4. 页面生命周期函数 WXS脚本1. 概述2. 基础语法3. WXS的特点4. 使用WXS处理手机号 总…

Multisim详细安装过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Multisim是什么?二、下载安装步骤1.下载安装包2.安装 总结 前言 对于很多学习电路,数电,模电的朋友,我们在…

富格林:可信经验曝光有效出金

富格林认为,在现货黄金当中,曝光可信的交易技巧可以帮助投资者有效地盈利出金。现货黄金市场就像一把双刃剑,投资者利用得好就能成为赢家,利用得不好便是损失钱财。事实上,要想成为赢家还是要掌握必须的可信经验。以下…

volcengine 库装不上 #25

https://github.com/volcengine/volc-sdk-python/issues/25 解决了, 就是解决方案比较蠢 在 Docker python3.10-slim 中 volcengine 安装时报错, 其依赖 pycryptodome 显示 gcc 相关错误 调研发现 pycryptodome3.19.0 不会报错, volcengine 依赖的 pycryptodome3.9.9 会报错 …

php中strict_types使用详解

在PHP中,strict_types是一个声明性的指令,用于在文件级别控制类型声明的严格性。当你在脚本的最顶部使用declare语句启用strict_types时,PHP将在该文件中对类型声明执行严格的类型检查。这意味着函数参数、返回值等必须精确匹配指定的类型&am…

05-Mysql备份与恢复

物理备份:对数据库操作系统的物理文件(如数据库文件,日志文件等)的备份 物理备份方法: 冷备份(防脱备份):是在关闭数据库的时候进行的 热备份(联机备份)&am…

入门JavaWeb之 Session 篇

Session: 服务器会给每个用户(浏览器)创建一个 Session 对象 一个 Session 独占一个浏览器,只要浏览器没有关闭,这个 Session 就存在 代码如下: package com.demo.cookie;import javax.servlet.Servlet…

WPF/C#:如何实现拖拉元素

前言 在Canvas中放置了一些元素&#xff0c;需要能够拖拉这些元素&#xff0c;在WPF Samples中的DragDropObjects项目中告诉了我们如何实现这种效果。 效果如下所示&#xff1a; 拖拉过程中的效果如下所示&#xff1a; 具体实现 xaml页面 我们先来看看xaml&#xff1a; <…

软件工程练习题1

一、选择 1. &#xff08; D &#xff09;不可以作为模块 A.子程序 B.函数 C.过程 D.循环 2. 下列哪个阶段不属于软件生命周期三大阶段&#xff08; C &#xff09; A.定义阶段 B.开发阶段 C.编码阶段 D.维护阶段 3. 需求分析最终结果是产生&#xff08;B&#…

python之静态函数装饰器staticmethod介绍

Python 中的 staticmethod 装饰器是用于定义一个静态方法的修饰器。静态方法是一种特殊的方法,它不需要 self 参数,也不需要 class 参数,它只是一个普通的函数,只是被定义在类的内部。 1.示例 下面是一个使用 staticmethod 的例子: class MyClass:def __init__(self, x, y):…

基于稀疏矩阵方法的剪枝压缩模型方案总结

1.简介 1.1目的 在过去的一段时间里&#xff0c;对基于剪枝的模型压缩的算法进行了一系列的实现和实验&#xff0c;特别有引入的稀疏矩阵的方法实现了对模型大小的压缩&#xff0c;以及在部分环节中实现了模型前向算法的加速效果&#xff0c;但是总体上模型加速效果不理想。所…