首页 > 编程语言 >使用pnpm的patch命令打补丁(正确修改源码,在外部修改node_modules代码 )

使用pnpm的patch命令打补丁(正确修改源码,在外部修改node_modules代码 )

时间:2022-08-22 11:46:21浏览次数:110  
标签:axios xxx patch 修改 源码 打补丁 pnpm

在开发时,有时碰到依赖的类库有bug或者不满足要求时

  1. 让作者改,一般不太现实和及时
  2. 使用patch-package打补丁,安装依赖后自动打上修改的内容
    在pnpm7.4(pnpm高效npm版本管理工具)版本以后pnpm添加了pnpm patch和pnpm pathc-commit,支持给依赖打补丁。

流程:通过pnpm patch xxx依赖@xxx版本命令拷贝一份依赖库的文件项目,然后用户对该拷贝的项目进行修改,然后通过提供的命令pnpm patch-commit +xxx路径对修改后的代码以及原来的代码进行diff,生成一个xxx.patch的文件,对应项目的package.json会有个pnpm.patchedDependencies字段来指向patch文件,之前其他人安装依赖后,会自动使用到该patch

比如要更改axios里面的代码
1.pnpm i axios
2.

// @后面是axios版本
pnpm patch [email protected]

// 然后会生成一个地址
You can now edit the following folder xxxxxxxxxxx

3.打开这个地址进行更改
4.pnpm patch-commit + xxxxxxx生成的地址
最后package.json里就会有这个代码
image
文件夹下也会多打补丁的文件
image

标签:axios,xxx,patch,修改,源码,打补丁,pnpm
From: https://www.cnblogs.com/wang--chao/p/16612248.html

相关文章

  • Vue面试题06:Vue子组件是否可以修改父组件的数据?
    Vue子组件是否可以修改父组件的数据?可以修改但不推荐:首先,文档中指出组件开发需要遵循单向数据流原则:即所有的props都遵循着单向绑定的原则,props因父组件的更新而变化......
  • Mybatis 懒加载使用及源码分析
    Mybatis懒加载的使用什么是懒加载?懒加载的意思就是在使用的时候才去加载,不使用不去加载,相反的就叫饥饿加载或者立即加载。懒加载在Mybatis中一般是存在与联合查询的情况,......
  • vue中子组件修改父组件中传递的参数的值
    方法一:1<!--父组件代码-->2<template>3<div>4<p>我是父组件</p>5<button@click="handleShowChild"v-show="!isVisibleChild">显示子组件</but......
  • SpringBoot读取.yml配置文件最常见的两种方式-源码及其在nacos的应用
    一、前言我们在开发中会经常遇到一些可能会变的值,比如数据库的密码,一些关键链接的配置等等。都需要我们写在配置文件中,这样可以把这些配置文件放到nacos上进行管理,修改na......
  • 通过 css3 自定义、修改滚动条的样式
    ::-webkit-scrollbar{width:4px!important;background-color:#012d58!important;border-radius:4px!important;}::-web......
  • React 源码-React 事件全解
    事件系统reactv17事件绑定事件绑定在函数setInitialDOMPropertiessetInitialDOMProperties将在complete阶段执行functionsetInitialDOMProperties(tag:st......
  • Windows批量修改文件
    如图我是建立了壁纸文件夹Windows自带的排序方式如何不用自带的呢?在这个文件夹里面建一个.txt文件如下ok第二步骤将UTF-8格式改为ANSI格式点击文件-另存为AN......
  • 修改已提交的commit注释
    修改commit注释1.1修改最后一次commit注释:通过gitlog查看提交历史信息:输入命令:gitcommit--amend进入修改注释界面:第一行就是最后一次commit的注释信息,按i......
  • [FAQ] Windows 终端 git status 不识别文件名大小写的修改
     当我们修改了文件名的大小写,gitstatus显示没有文件改动。 出现这种情况,首先看一下git的配置项是否忽略了文件问大小写:$ gitconfigcore.ignorecase 如果是......
  • Linux 基于源码安装 Redis
    1.下载Redis:前往Redis官网复制Redis相应版本的下载链接,到终端下载2.进入到指定目录,下载redis.tar.gz包,运行wget+复制的下载链接 例如:wgethttps://d......