首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-03-08 01:03
  • 3092
  • 8261
blog.csdn.net

修改文件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

yarn add patch-package

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

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

npx patch-package @jiaminghi/data-view

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

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

  1. 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
  2. index 9928231..2c37ec3 100644
  3. --- a/node_modules/@jiaminghi/data-view/lib/components/decoration3/src/main.vue
  4. +++ b/node_modules/@jiaminghi/data-view/lib/components/decoration3/src/main.vue
  5. @@ -4,9 +4,9 @@
  6. v-for="(point, i) in points"
  7. + :key="i"
  8. >
  9. - :key="i"
  10. :fill="mergedColor[0]"
  11. :x="point[0] - halfPointSideLength"
  12. :y="point[1] - halfPointSideLength"
  13. 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
  14. index b044326..1434c04 100644
  15. --- a/node_modules/@jiaminghi/data-view/lib/components/decoration6/src/main.vue
  16. +++ b/node_modules/@jiaminghi/data-view/lib/components/decoration6/src/main.vue
  17. @@ -3,9 +3,9 @@
  18. v-for="(point, i) in points"
  19. + :key="i"
  20. >
  21. - :key="i"
  22. :fill="mergedColor[Math.random() > 0.5 ? 0 : 1]"
  23. :x="point[0] - halfRectWidth"
  24. :y="point[1] - heights[i] / 2"

在package.json文件下的scripts 添加

 "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: 在构建之后执行。
注:本文转载自blog.csdn.net的nnlss的文章"https://blog.csdn.net/qq_38233172/article/details/142872209"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

132
搜索
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top