一次性解决vue3引入@jiaminghi/data-view需要手动修改node_modules下文件

server/2024/10/18 21:39:41/

修改文件1:node_modules\@jiaminghi\data-view\lib\components\decoration6\src\main.vue

修改文件2: node_modules\@jiaminghi\data-view\lib\components\decoration3\src\main.vue

修改前:

修改后:

通过打补丁的方式对引用库进行修改, 引入@jiaminghi/data-view

javascript">yarn add patch-package

一定是修改后node_modules\@jiaminghi下的文件,并保存

执行,若不修改错误文件将会报错

javascript">npx patch-package @jiaminghi/data-view

此时将在项目目录下自动生成patches/@jiaminghi+data-view+2.10.0.patch

文件内容git diff 记录,包括修改了哪些文件,文件的第几行等信息:

javascript">diff --git a/node_modules/@jiaminghi/data-view/lib/components/decoration3/src/main.vue b/node_modules/@jiaminghi/data-view/lib/components/decoration3/src/main.vue
index 9928231..2c37ec3 100644
--- a/node_modules/@jiaminghi/data-view/lib/components/decoration3/src/main.vue
+++ b/node_modules/@jiaminghi/data-view/lib/components/decoration3/src/main.vue
@@ -4,9 +4,9 @@<templatev-for="(point, i) in points"
+        :key="i"><rect
-          :key="i":fill="mergedColor[0]":x="point[0] - halfPointSideLength":y="point[1] - halfPointSideLength"
diff --git a/node_modules/@jiaminghi/data-view/lib/components/decoration6/src/main.vue b/node_modules/@jiaminghi/data-view/lib/components/decoration6/src/main.vue
index b044326..1434c04 100644
--- a/node_modules/@jiaminghi/data-view/lib/components/decoration6/src/main.vue
+++ b/node_modules/@jiaminghi/data-view/lib/components/decoration6/src/main.vue
@@ -3,9 +3,9 @@<svg :width="`${svgWH[0]}px`" :height="`${svgWH[1]}px`" :style="`transform:scale(${svgScale[0]},${svgScale[1]});`"><templatev-for="(point, i) in points"
+        :key="i"><rect
-          :key="i":fill="mergedColor[Math.random() > 0.5 ? 0 : 1]":x="point[0] - halfRectWidth":y="point[1] - heights[i] / 2"

在package.json文件下的scripts 添加

javascript"> "postinstall": "patch-package"

此后,重新安装依赖或者其他开发者拉取代码安装依赖,都不用在手动修改node_modules文件。

执行yarn 或者 npm install 安装依赖时,patch-package做了哪些工作?

1.应用补丁

  • patch-package 会查找项目中的 .patch 文件。这些文件通常是由 patch-package 命令生成的,它们包含了项目依赖的第三方库的代码修改记录。
  • 会检查每个补丁文件是否与当前安装的依赖版本相匹配。
  • 如果匹配,patch-package 会将这些补丁应用到相应的依赖包上。这个过程就像是“热修复”,无需修改原始代码库,就能对第三方库进行定制化的修改。

2.确保依赖的一致性

这个过程确保了即使依赖包更新,你的定制化修改也会被保留。这对于修复紧急的bug,或者在等待上游合并你的修复时保持项目运行非常有用。

3.验证补丁的有效性

patch-package 有时会验证补丁是否仍然有效。如果由于某些原因(例如依赖的代码结构发生变化)导致补丁不再适用,它可能会报错。

4.记录和报告

  • 如果应用补丁过程中出现问题,patch-package 会输出错误信息,帮助开发者诊断问题。
  • 成功应用补丁后,通常不会有输出,这意味着补丁已经顺利应用。

使用 "postinstall": "patch-package" 的一些场景:

  • 定制化修复:当你需要修复一个第三方库的bug,但是这个修复还没有被官方合并时。
  • 功能增强:在等待官方添加某个功能期间,你可能需要自己实现并应用这个功能。
  • 依赖兼容性:当依赖库的更新破坏了你的应用时,你可以通过补丁来临时解决这个问题。

注:使用 patch-package 时应当谨慎,因为手动修改依赖库可能会导致维护难度增加。同时,确保补丁的更新和维护与依赖库的版本更新保持同步。

在执行 yarn build 时,通常情况下 "postinstall": "patch-package" 脚本不会被执行。这是因为 "postinstall" 脚本是在依赖安装过程(即 npm install 或 yarn)结束后自动运行的,而 "build" 脚本是与构建项目相关的独立操作。

常见的 Yarn 脚本钩子及其执行时机:

  • preinstall: 在依赖安装之前执行。
  • install: 执行依赖安装(通常由 Yarn 内部处理)。
  • postinstall: 在依赖安装之后执行。
  • prebuild: 在构建之前执行。
  • build: 执行构建过程。
  • postbuild: 在构建之后执行。

http://www.ppmy.cn/server/132365.html

相关文章

八、Linux之实用指令

1、指定运行级别 1.1 基本介绍 运行级别说明 0 &#xff1a;关机 1 &#xff1a;单用户【找回丢失密码】 2&#xff1a;多用户状态没有网络服务&#xff08;用的非常少&#xff09; 3&#xff1a;多用户状态有网络服务&#xff08;用的最多&#xff09; 4&#xff1a;系统未使…

pdf文件怎么编辑?5个软件帮助你快速进行pdf文件编辑

pdf文件怎么编辑&#xff1f;5个软件帮助你快速进行pdf文件编辑 PDF 文件的编辑常常被认为是比较复杂的操作&#xff0c;因为 PDF 格式的本质是固定的布局&#xff0c;通常用于文档共享而不易更改。但随着技术的进步&#xff0c;编辑 PDF 文件变得越来越方便。以下是 5 款可以帮…

Chromium HTML attribute与c++接口对应关系分析

<a href"https://www.w3school.com.cn" target"_blank">访问 W3School</a>前端这些属性定义在html_attribute_names.json5文件中&#xff1a; third_party\blink\renderer\core\html\html_attribute_names.json5 html_attribute_names.json5…

C#操作SqlServer数据库存储过程

操作存储过程 1. 无参数存储过程 1. 连接数据库 string connString "Server192.168.113.74,51187\SQLEXPRESS;DataBaseSMDB;Uidsa;Pwd123456"; conn new SqlConnection(connString); conn.Open(); //2 定义存储过程名称 string proceName "usp_ScoreQuery1&q…

基于百度智能体开发爱情三十六计

基于百度智能体开发爱情三十六计 文章目录 基于百度智能体开发爱情三十六计1. 爱情三十六计智能体2. 三十六计开发创意3. 智能体开发实践3.1 基础配置3.2 进阶配置3.3 调优心得3.4可能会遇到的问题 4. 为什么选择文心智能体平台 1. 爱情三十六计智能体 爱情三十六计 是一款基于…

[含文档+PPT+源码等]精品基于django实现的原生Andriod天气信息的着装搭配系统

基于Django实现的原生Android天气信息的着装搭配系统背景&#xff0c;可以从以下几个方面进行详细阐述&#xff1a; 一、技术背景 Django框架&#xff1a; Django是一个高级的Python Web框架&#xff0c;它鼓励快速开发和干净、实用的设计。Django框架具有强大的数据库抽象层、…

第六章:数据工程(6.3数据治理和建模--6.4数据仓库和数据资源)

6.3数据治理 6.3.1 元数据 数据治理是开展数据价值化活动的基础&#xff0c; 6.3.2 数据标准化 数据标准化的主要内容包括元数据标准化、数据元标准化、数据模式标准化和数据分类与编码标准化 数据标准化阶段的具体过程包括确定数据需求、制定数据标准、批准数据标准和实施…

开源 AI 智能名片 S2B2C 商城小程序源码:C 端用户连接的创新策略与价值

摘要 在数字化时代&#xff0c;企业与 C 端用户的连接至关重要。开源 AI 智能名片 S2B2C 商城小程序源码在连接 C 端用户方面展现出强大策略和巨大价值。其通过集客营销策略、创新开店模式、链动 21 模式与 S2B2C 商城模式以及多渠道方式连接 C 端用户。从策略上&#xff0c;内…