不知道大家有没有遇到过这个一个问题,当你修改了node_modules中的某个其他第三方的js包或者模块的时候,怎么样还能通过npm i的方式让其他的同学拿到你修改的这部分呢?
- 这里分享一个patch-package的一个方式可以解决这个问题,它的用途就是用来解决这种问题的,是用于打补丁的存在,也就是当你在node_modules中修改了源码,如果其他人在别的地方拉下代码之后初始化的时候,下载的这个node_modules,但是这个包里面没有你修改的东西,此时,这个patch-package记录了你修改了那些个文件,修改了哪些部分,就可以把你修改的这部分及时的反馈到你的代码中,然后别人就可以看到你修改的那些东西了。
- 先下载这个补丁包
npm i patch-package // 下载
- 然后在 package.json 的 scripts 中加入 “postinstall”: “patch-package”,后续执行 npm install 或 yarn install 命令时,会自动为依赖包打补丁。
"scripts": { "postinstall": "patch-package" }
- 然后当你在node_modules中做出一些改动的时候,记住你改动的包的名字,此时就可以打补丁了
npx patch-package your-packageName
-
如果你是第一次打补丁包,那么此时你的项目中和你node_modules包平级的文件夹中会有一个patches的文件夹里面就是你改动的部分补丁包
-
这样就打好补丁包了,等到下次其他人需要用的时候就可以npm i正常的初始化项目就好了