Node 源项目定制化、打包并使用全过程讲解

请添加图片描述

👨🏻‍💻 热爱摄影的程序员
👨🏻‍🎨 喜欢编码的设计师
🧕🏻 擅长设计的剪辑师
🧑🏻‍🏫 一位高冷无情的编码爱好者
大家好,我是全栈工程师
欢迎分享 / 收藏 / 赞 / 在看!

【需求】

在使用 VitePress 制作个人文档时,发现官方提供的组件非常不好用,虽然说他们也提供了足够强大的扩展功能,但是定制化始终不尽如人意,满足不了笔者的需求。

好在官方提供了源代码,因此我们就需要在源代码上定制修改,再打包,最后在我们的项目中引入并使用。

此教程涵盖最常见的 Node 源项目(如:Element Plus、uView 等)定制、打包并使用的过程。

【解决】

1 下载源代码至本地

从 GitHub 上下载 VitePress 官方源码至本地:GitHub-VitePress。

使用 WebStorm 等 IDE 打开,打开 package.json 文件,观察文件结构。

养成一个习惯,在修改源代码前先创建一个新的 Git 分支,这边以 dev 为例,并切换至该分支上:

在这里插入图片描述

这边使用的是 pnpm 作为包管理器,因此在根目录下使用命令 pnpm install 安装项目依赖:

在这里插入图片描述

2 个性修改代码

这里以文件 VPFooter.vue 为例,笔者添加了几个 1 作为区分:

在这里插入图片描述

3 项目整合并打包

打开 package.json 文件,可以看到 build 执行内容,在项目根路径下执行命令 pnpm run build 将修改后的项目打包,可以看到生成的
dist 文件夹:

在这里插入图片描述

打包后光有 dist 目录是不够的,完整的还需要相关启动脚本等文件,由于没有看到执行打包后生成的完整内容,因此从正常的
VitePress 项目中的 node_modules 中的 vitepress 目录拷贝出来,并将上一步打包生成的 dist 目录替换进去,整合构成新的文件夹,起名为
vitepress:

在这里插入图片描述
在这里插入图片描述

4 项目中引入并使用

在 Node 项目中引入自己修改的源码有三种方式(以上面的修改过后并整合的的 vitepress 项目为例,注意在要使用的项目上线提前使用命令
npm uninstall vitepress 卸载相应的 vitepress 依赖):

  1. 直接将 vitepress 文件夹拷贝到自己的项目中使用。例如拷贝至自己项目根路径的 deps 目录下,则需要在 package.json 文件中的
    depedencies 添加,再使用命令 npm install 安装依赖:
"dependencies": {
"vitepress": "file:deps/vitepress"
}
  1. 将 vitepress 文件夹打包,并拷贝到自己的项目中使用。优点是体积小,可以避免修改到里面的源码。
# 注意是在 vitepress 的同级目录下执行打包,-C 可以避免再生成一层 vitepress 目录
tar -acvf vitepress.tar.gz -C ./vitepress .

例如拷贝至自己项目根路径的 deps 目录下,则需要在 package.json 文件中的 depedencies 添加,再使用命令 npm install 安装依赖:

"dependencies": {
"vitepress": "file:deps/vitepress.tag.gz"
}
  1. 使用 GitHub 链接。

在 GitHub 中新建仓库 vitepress 并将 vitepress 文件夹上传过去(这里可以起一个 tag 做一下标记):

在这里插入图片描述

在 package.json 文件中的 depedencies 添加之前步骤中仓库的链接(有 tag 的记得带上),再使用命令 npm install 安装依赖:

"dependencies": {
"vitepress": "github:hongyoudan/vitepress#<tag>"
}

最终效果:

在这里插入图片描述

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

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

相关文章

财务数据智能化:用AI工具高效制作财务分析PPT报告

Step1: 文章内容提取 WPS AI 直接打开文件&#xff0c;在AI对话框里输入下面指令&#xff1a; 假设你是财务总监&#xff0c;公司考虑与茅台进行业务合作、投资或收购&#xff0c;请整合下面茅台2021年和2022年的财务报告信息。整理有关茅台财务状况和潜在投资回报的信息&…

论文阅读<CF-YOLO: Cross Fusion YOLO for Object Detection in Adverse Weather.....>

论文链接&#xff1a;https://arxiv.org/pdf/2309.08152.pdfhttps://arxiv.org/pdf/2206.01381.pdfhttps://arxiv.org/pdf/2309.08152.pdf 代码链接&#xff1a;https://github.com/DiffPrompter/diff-prompter 目前没有完整代码放出。 恶劣天气下的目标检测主要有以下三种解…

【【IIC模块Verilog实现---用IIC协议从FPGA端读取E2PROM】】

IIC模块Verilog实现–用IIC协议从FPGA端读取E2PROM 下面是 design 设计 I2C_dri.v module IIC_CONTROL #(parameter SLAVE_ADDR 7b1010000 , // E2PROM 从机地址parameter CLK_FREQ 26d50_000_000 , // 50MHz 的时钟频率parameter …

关于MULTI#STORM活动利用远程访问木马瞄准印度和美国的动态情报

一、基本内容 于2023年6月22日&#xff0c;一款代号为MULTI#STORM的新网络钓鱼活动将目标瞄准了印度和美国&#xff0c;利用JavaScript文件在受感染的系统上传播远程访问木马。 二、相关发声情况 Securonix的研究人员Den luzvyk、Tim Peck和Oleg Kolesnikov发表声明称&#x…

民富购:塑造数字时代下的电商革新与社会责任典范

在数字经济时代,电子商务已经成为建立市场关系、创新产业和服务业态、促进经济增长的重要途径和手段。特别是在中国,新型电子商务的迅猛发展已经改变了生产和生活的方方面面,不仅催生了众多新业态,还通过“互联网”战略让许多传统产业和服务焕发了新的生机。民富购,作为扬羊(广…

了解OAuth 2.0以及社交登录认证授权流程

1.前言 目前在写一个电商项目&#xff0c;可以通过手机号进行注册登录&#xff0c;为了方便用户使用本平台的系统&#xff0c;引入社交登录功能&#xff0c;这里使用的是gittee。 2.OAuth 2.0介绍 当谈到网络安全和身份验证时&#xff0c;OAuth 2.0&#xff08;开放授权 2.0&a…

8.21 PowerBI系列之DAX函数专题-帕累托分析

需求 实现 1 按商品小类累积 var rollup_sales calculate(//计算当前累计销售额 [销售额], filter(allselected(order_2[产品小类]),sum(order_2[订单金额])<[销售额]) ) //按小类累积金额,filter内的销售额为选中的各小类的销售额 //金额从大到小累积&#xff0c;用&l…

《我在北京送快递》平凡隽永的时刻,对人生更具意义

《我在北京送快递》平凡隽永的时刻&#xff0c;对人生更具意义 胡安焉 文章目录 《我在北京送快递》平凡隽永的时刻&#xff0c;对人生更具意义[toc]摘录感悟 摘录 转“没有期限的承诺无疑就是委婉的拒绝” 转书友&#xff1a;亨利福特说&#xff0c;我聘的是一双手&#xff0…

C语言操作符if语句好习惯 详解分析操作符(详解4)

各位少年&#xff1a; 前言 还记得我们上一章讲过一个比较抽象的代码&#xff0c;它要比较两次都是真的情况下才能打印&#xff0c;那么很显然这样写代码是有弊端的&#xff1f;哪我们C语言之父丹尼斯.里奇&#xff0c;先介绍一下上次拉掉了if语句的好习惯 好再分享一些操作符…

Autosar CAN开发02(入门Autosar)

Autosar架构 想起当时刚毕业进入公司之后&#xff0c;我的岗位是Autosar Bsw软件工程师。 看着这个什么“Autosar”&#xff0c;真的是一脸懵。 后来才知道&#xff0c;按照我的理解&#xff1a;Autosar就是一个软件架构。它分为ASW和BSW。ASW负责实现应用层功能&#xff08…

Linux构建NFS远程共享存储和ftp配置

NFS架构 NFS介绍 文件系统级别共享&#xff08;是NAS存储&#xff09; --------- 已经做好了格式化&#xff0c;可以直接用。 速度慢比如&#xff1a;nfs&#xff0c;samba NFS&#xff1a;Network File System 网络文件系统&#xff0c;NFS 和其他文件系统一样,是在 Linux …

H266/VVC帧内预测编码技术概述

预测编码技术 预测编码&#xff08;Prediction Coding&#xff09;是指利用已编码的一个或多个样本值&#xff0c;根据某种模型或方法&#xff0c;对当前的样本值进行预测&#xff0c;并对样本真实值和预测值之间的差值进行编码。 视频中的每个像素看成一个信源符号&#xff…