如何修改node_modules中的内容

一、应用场景

1、某些依赖有些bug,并且无人维护,需要自己修复。

2、某些依赖低版本有些bug,但是因为项目原因无法升级高版本依赖,需要自己手动修复。

3、上线过程中发现某些依赖有些bug,需要紧急修复。

二、修改方式

1、直接修改node_modules中的内容(不推荐)

优点:方便,找到需要修改的内容直接改就完事了。

缺点:重新拉取依赖就会被覆盖,还需要重新修改。

2、把需要修改的内容复制到项目中,修改导入地址为项目地址(一般推荐)

优点:重新拉取依赖不需要重新修改。

缺点:未来依赖升级,还需要手动替换所有导入位置为依赖位置。

3、通过patch-package修改(推荐)

优点:重新拉取依赖会通过判断依赖版本,版本一致才会自动修改内容。

缺点:操作步骤比较繁琐。

使用方法:

1、安装依赖
npm i patch-package --save-dev
2、在package.json文件中的scripts属性中增加脚本
"postinstall": "patch-package"
3、修改node_modules中的内容
4、创建补丁
npx patch-package package-name(刚才修改的包名)

坑:

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
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误提示表明在执行 `npm install` 命令时发生了权限问题,导致无法重命名文件或目录。 可能的原因是当前用户没有足够的权限来修改文件或目录,或者文件或目录被其他程序占用。解决此问题的方法如下: 1. 以管理员身份运行命令提示符或 PowerShell。在 Windows 上,你可以右键单击“命令提示符”或“PowerShell”,然后选择“以管理员身份运行”。 2. 检查是否有其他程序正在使用被占用的文件或目录。你可以尝试关闭其他程序,或者等待它们完成操作后再执行 `npm install` 命令。 3. 如果你使用了防病毒软件或安全软件,请尝试临时禁用它们,然后再执行 `npm install` 命令。 4. 如果上述方法都无法解决问题,请尝试在命令行手动执行重命名操作。例如,如果出错的文件是 `D:\node-v14.21.3-win-x64\node_global\node_modules\cnpm\node_modules\npm\node_modules\.node-gyp.DELETE\node_modules\@npmcli`,则可以尝试使用以下命令进行重命名: ``` move D:\node-v14.21.3-win-x64\node_global\node_modules\cnpm\node_modules\npm\node_modules\.node-gyp.DELETE\node_modules\@npmcli D:\node-v14.21.3-win-x64\node_global\node_modules\cnpm\node_modules\npm\node_modules\node-gyp\node_modules\@npmcli ``` 这个命令将 `.node-gyp.DELETE` 目录下的 `@npmcli` 目录重命名为 `node-gyp` 目录下的 `@npmcli` 目录。如果操作成功,你应该可以重新执行 `npm install` 命令了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值