nodejs很简单,因为它很简陋。
    你项目中安装了很多的node_modules依赖,如果你想改一个依赖库,怎么处理?
    方法一:把修改后的代码换个名字重新打个包提交到tnpm,然后直接引用这个新包
    方法二:把代码copy移出node_modules作为本地依赖
    无论是上面哪种办法,作为有代码洁癖的人来说,都觉得很别扭,我就改了某一个文件了一两行代码,却要如此臃肿的copy整个项目,更要命的是最后可能都忘了自己修改了哪里,没有diff可供追溯。
    **
    Java可以把class文件拷贝出来,创建一个同包名的类文件,JVM类加载器自动判断优先级,会以你写的新类优先,用优先级的方式覆盖掉Maven中的依赖库中的类。

    很遗憾,nodejs没有这类机制,而且也没有什么高大上的解决办法。

    好在开源界实在看不下去了,写一个nodejs依赖库,来修补这个问题。
    源码:https://github.com/ds300/patch-package

    实现原理: patch-package会比对依赖包修改后和修改前的差异,记录差异会放到项目中的patches目录中,利用npm生命周期,每次npm install之后调用postinstall钩子,即install后续处理,修改依赖包。
    1.本地安装

    1. yarn add patch-package
    2. 或者
    3. npm install patch-package

    2.在package.json 的scripts中加入脚本,这是npm的一个钩子,会在依赖包被install之后执行

    1. "scripts": {
    2. "postinstall": "patch-package"
    3. }

    3.修改node_modules中的代码
    4.生成patches

    1. npx patch-package your-package-name

    5.提交patches后,重新install包你就会发现是你修改后的结果

    1. yarn
    2. 或者
    3. npm install