开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情
前言
通常情况下,在开发过程中,我们不应该修改 node_modules
中的任何内容,但偶尔会出现一些意想不到的问题导致我们需要对其进行修改,比如:我在使用百度的低代码框架amis时,打包报错,提示amis包中一些css文件缺少分号的问题
方式一
直接修改 node_modules
根据报错提示顺藤摸瓜对node_modules中的amis包直接修改,问题很快得到解决。
弊端:再次安装依赖时,之前修改的代码丢失,恢复原状;只有自己可以用修改过的本地node_modules,其他人无法使用
方式二
独立维护需要改动的包
可以将 amis 包复制一个,将代码修改为自己所需要的之后,推送到npm
上(上传npm具体步骤可参考这篇文章),项目中不再需要之前的amis包,安装刚刚修改过的新包
这是比较常用的一种方式,感觉增加了维护成本,其实并没有多少,修改后基本长时间不会再进行改动
方式三
patch-package
一个用来修改node_modules中包的代码的工具
使用方式:
- 安装 patch-package
npm i patch-package
- 修改 node_modules
修改对应的包之后,执行
npx patch-package `包`
这时,根目录下会出现
patches
文件夹,里面的内容是对原始包进行修改后的补丁。
- 自动执行
在
package.json
的script
中增加
"postinstall": "patch-package"
作用:当执行
npm install
的时候,会自动执行npm run postinstall
这个命令,也就是执行patch-package
,这时候就会去读取上面提到的patches
目录,并将那些补丁打到对应的包里,达到同步修改代码的效果
- 提交代码
以上操作执行完成后,不要忘了将代码提交到远程仓库,让其他人同步你修改后的代码,以防修改丢失。