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

news/2024/5/17 19:37:09 标签: node.js, github, 前端框架, gitee

请添加图片描述

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

【需求】

在使用 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.niftyadmin.cn/n/5286256.html

相关文章

使用凌鲨辅助学习软件研发

对于新入门的软件研发人员来说&#xff0c;Git和研发环境的搭建确实是一个不小的挑战。Git是一个分布式版本控制系统&#xff0c;用于跟踪代码的更改和协作&#xff0c;而研发环境则是一个专门用于开发和测试应用程序的环境。 在Git方面&#xff0c;新入门的软件研发人员需要了…

力扣(leetcode)第4题寻找两个正序数组的中位数(Python)

4.寻找两个正序数组的中位数 题目链接&#xff1a;4.寻找两个正序数组的中位数 给定两个大小分别为 m m m 和 n n n 的正序&#xff08;从小到大&#xff09;数组 n u m s 1 nums1 nums1 和 n u m s 2 nums2 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间…

udp多播/组播那些事

多播与组播 多播&#xff08;multicast&#xff09;和组播&#xff08;groupcast&#xff09;是相同的概念&#xff0c;用于描述在网络中一对多的通信方式。在网络通信中&#xff0c;单播&#xff08;unicast&#xff09;是一对一的通信方式&#xff0c;广播&#xff08;broad…

实战:朴素贝叶斯文本分类器搭建与性能评估

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

云渲染UE4像素流送搭建(winows、ubuntu)

windows/ubuntu20.4下UE4.27.2像素流送 像素流送技术可以将服务器端打包的虚幻引擎应用程序在客户端的浏览器上运行&#xff0c;用户可以通过浏览器操作虚幻引擎应用程序&#xff0c;客户端无需下载虚幻引擎&#xff0c;本文实现两台机器通过物理介质网线实现虚幻引擎应用程序…

泛微OA xmlrpcServlet接口任意文件读取漏洞(CNVD-2022-43245)

CNVD-2022-43245 泛微e-cology XmlRpcServlet接口处存在任意文件读取漏洞&#xff0c;攻击者可利用漏洞获取敏感信息。 1.漏洞级别 中危 2.影响范围 e-office < 9.5 202201133.漏洞搜索 fofa 搜索 app"泛微-OA&#xff08;e-cology&#xff09;"4.漏洞复现 …

设计模式详解:代理模式

1. 什么是代理模式&#xff1f; 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许通过代理对象控制对另一个对象的访问。代理模式在客户端和目标对象之间引入了一个代理对象&#xff0c;客户端通过代理对象间接地访问目标对象&#xff0c…

算法训练|实现 Trie (前缀树)

208. 实现 Trie (前缀树) - 力扣&#xff08;LeetCode&#xff09; 总结&#xff1a; Trie&#xff0c;又称前缀树或字典树&#xff0c;是一棵有根树&#xff0c;其每个节点包含以下字段&#xff1a; 指向子节点的指针数组 children。对于本题而言&#xff0c;数组长度为 26…