vue修改node_modules打补丁步骤和注意事项

这篇具有很好参考价值的文章主要介绍了vue修改node_modules打补丁步骤和注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当我们使用 npm 上的第三方依赖包,如果发现 bug 时,怎么办呢?

  想想我们在使用第三方依赖包时如果遇到了bug,通常解决的方式都是绕过这个问题,使用其他方式解决,较为麻烦。或者给作者提个issue,然后等待作者的修复,等待的时间不可控。那么这时候是不是就可以借助patch-package自己动手去修复该bug,感觉是不是很棒,并且还可以在第三方依赖包上,根据业务需求扩展能力。

  当然最好还是扩展一些通用性比较高的能力,如果是比较通用且该能力大多数开发者都有这种诉求的话可以给第三方依赖包提个PR。参与开源项目是不是简单了起来了~(不要在魔改的路上越走越远)

  挺多文章有介绍的,可以参考:

1、vue-pdf问题解决及patch-package简介:https://www.jianshu.com/p/d1887e02f8d6

2、使用“黑魔法”优雅的修改第三方依赖包:https://zhuanlan.zhihu.com/p/412753695

3、使用patch-package定制node_modules中的依赖包:https://blog.csdn.net/qq_32429257/article/details/111051217

  具体应用场景就不多说了,可以自己看文章,其实还是有蛮多需求的,这里主要记录一下具体使用步骤。

patch-package的使用

Step1:安装

使用npm安装

npm i patch-package

推荐使用yarn安装

yarn add patch-package postinstall-postinstall

Step2:修改package.json文件

package.json的scripts中声明了一系列的npm脚本命令,如下:(参考资料:http://caibaojian.com/npm/misc/scripts.html)

  • prepublish: 在包发布之前运行,也会在npm install安装到本地时运行
  • publish,postpublish: 包被发布之后运行
  • preinstall: 包被安装前运行
  • install,postinstall: 包被安装后运行
  • preuninstall,uninstall: 包被卸载前运行
  • postuninstall: 包被卸载后运行
  • preversion: bump包版本前运行
  • postversion: bump包版本后运行
  • pretest,test,posttest: 通过npm test命令运行
  • prestop,stop,poststop: 通过npm stop命令运行
  • prestart,start,poststart: 通过npm start命令运行
  • prerestart,restart,postrestart: 通过npm restart运行

可以看到依赖包在安装完之后会执行postinstall命令

所以我们在package.json的scripts里面增加:"postinstall": "patch-package"

"scripts": {
    ***,
+   "postinstall": "patch-package"
}

修改 package.json,新增命令 "postinstall": "patch-package",如图:

vue修改node_modules打补丁步骤和注意事项,vue.js,前端,javascript

Step3.执行命令 npx patch-package 修改的文件夹名字 此处文件夹名字指 node_modules 中下的文件夹名。

比如如:npx patch-package pdfjs-dist 这里的 pdfjs-dist 就是我们修改的文件的主文件夹名。

Step4.生成补丁 命令执行结束后查看根目录下是否生成了 patches 文件夹,patches文件夹是自动生成的,如图:

vue修改node_modules打补丁步骤和注意事项,vue.js,前端,javascript

Step5.npm install 验证 在项目里 npm install 验证,是否有补丁包的提示,有就表示打补丁成功!

vue修改node_modules打补丁步骤和注意事项,vue.js,前端,javascript

注意事项1:

1、自动部署中不生效
报错信息
npm WARN lifecycle nuxt-base-pc@1.0.0~postinstall: cannot run in wd nuxt-base-pc@1.0.0 patch-package (wd=/data/servers/jenkins/workspace/nginx)
解决办法
在项目根目录添加.npmrc 文件,写入:
unsafe-perm = true

vue修改node_modules打补丁步骤和注意事项,vue.js,前端,javascript文章来源地址https://www.toymoban.com/news/detail-758975.html

注意事项2:

  1. patch是锁定版本号的,如果升级了版本,patch内容将会失效,最好在package.json能够锁定版本号。
  2. 魔改的同时,也局限了升级的能力,尽量还是去提issue和PR。

到了这里,关于vue修改node_modules打补丁步骤和注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【patch-package】修改node_modules下的依赖包源码

    场景:当项目里使用的element-ui有bug,但是项目里又急需修改这bug,这个时候就需要给依赖打补丁啦~ lets app authors instantly make and keep fixes to npm dependencies. It\\\'s a vital band-aid for those of us living on the bleeding edge. 这是npm官网上对patch-package的说明,其意思就是 可以让大家立即对npm依赖

    2024年02月02日
    浏览(32)
  • node修改版本、npm修改版本、yarn无法加载文件、node_modules\sharp: Command failed解决方法

    1、node修改版本 步骤1:从node官网下载node压缩包或者exe文件 如果是下载的是exe文件就直接找到原来的node.exe文件替换掉就可以了,环境变量配置不变 如果是下载的node压缩包,需要解压后,修改本地的环境变量配置(查看步骤2) 找到对应要下载的版本,这里我选择的10 相对应

    2024年02月13日
    浏览(42)
  • git配置修改.gitignore不上传node_modules文件目录到gitee码云

    如果创建的vue或者uni项目,自动会有依赖包node_modules,如果不去设置.gitignore,那么会默认将该文件夹下面所有的文件进行上传,这样整个包非常大非常碎,别人使用起来很麻烦,正常来讲只要把主要文件下载下来,其他人只需要npm i一下就行了,那么怎么解决那。 第一行就是

    2024年02月13日
    浏览(42)
  • Vue没有node_modules怎么办

    npm install 一下 然后再npm run serve 就可以运行了    

    2024年02月12日
    浏览(33)
  • Vue项目快速删除node_modules文件

    vue项目开发过程中,需要重新安装node_modules文件,但删除之前的node_modules文件较慢,推荐使用命令的方式可以提高开发效率。

    2024年04月28日
    浏览(27)
  • 2021-09-16 npm install @vue/cli 卡在了 reify:rxjs: timing reifyNode: node_modules/@vue/cli/node_modules

    ​随后产生报错 查了一堆东西,后来发现其主要原因在于npm镜像源的问题。安装完nodejs之后默认镜像源为 淘宝镜像源 使用npm命令或者nrm命令切换镜像源至npm官方镜像源即可 注:本人长期科学上网因此npm官方源速度和淘宝基本没差,如果没有科学上网手段的朋友可能需要另想

    2024年02月11日
    浏览(43)
  • 多个Vue项目如何共用一个node_modules

    多个项目共同用一个项目的node_modules 问题:多个vue项目的node_modules依赖包相同,怎么共用同一个node_modules依赖包? 1.以管理员身份打开命令窗口cmd 2.输入命令:mklink /d 需要链接的项目地址 引用的源文件项目地址 1.如:源文件项目地址为:D:worksourceFilenode_modules 2.如:需要链

    2024年02月04日
    浏览(31)
  • Vue项目清理本地缓存并删除node_modules

    1. 在linux系统下,清缓存,删除node_modules 2. 在windows系统下,清缓存,删除node_modules 法一:利用 powershell 执行(推荐,速度快,秒删) 法二:利用 npm 下载 rimraf 执行 如果执行到“删除node_modules文件夹”的步骤不好用了,请直接手动删除node_modules文件

    2024年02月08日
    浏览(30)
  • reify:rxjs: timing reifyNode:node_modules/@vue/cli/node_modules——————npm run dev报错-npm初始化错误

    金钱不够,全靠技术 原因是网络问题 2种解决方法 重新输入,多试几次就好了 可以尝试换个镜像 如果是淘宝镜像,建议前者,其他镜像的可以试试换换 如果还不行试试,官方镜像 当时的效果图以后再补上 效 果 图 下回补上效果图 尝试换个新文件夹试试,作者换个文件夹就

    2024年02月16日
    浏览(33)
  • vue项目node_modules越来越大的问题

    有一个vue项目,发现它的占用空间越来越大,一看是node_modules占用已经100多G了,然后测试了每次编译运行就会增大几百兆,日积月累,磁盘都快装满了。 但是并不想删除node_modules重装,后来找到了是CompressionWebpackPlugin插件开启了GZIP压缩,缓存越来越大的问题,在vue.config.j

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包