You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在npm install时忽略修改后的react-native-push-notification包并推送到Git?

解决npm install覆盖自定义修改包的问题 + Git托管方案

我来给你几个实用的方案,既能阻止npm覆盖你的修改,又能把自定义版本托管到Git上,你可以根据自己的修改规模选择:

方案1:用patch-package打补丁(推荐小修改场景)

这个工具专门用来给第三方包打局部补丁,不用整个替换包,非常适合小范围的修改:

  • 第一步:安装patch-package到开发依赖
    npm install patch-package --save-dev
    
  • 第二步:修改node_modules/react-native-push-notification里的代码到符合你的需求
  • 第三步:生成补丁文件
    npx patch-package react-native-push-notification
    
    执行完后,项目根目录会多出一个patches文件夹,里面的.patch文件就是你的修改记录
  • 第四步:配置自动应用补丁
    在package.json的scripts里添加一行:
    "scripts": {
      // ... 其他脚本
      "postinstall": "patch-package"
    }
    
    这样每次执行npm install后,补丁会自动被应用,不会被原始包覆盖
  • 第五步:把补丁文件提交到Git
    直接把patches文件夹加入Git提交,其他人拉取代码后执行npm install也能自动拿到你的修改

方案2:将修改后的包作为本地依赖(适合不想维护独立仓库的场景)

如果你的修改比较大,或者不想用补丁工具,可以把整个修改后的包放到项目本地:

  • 第一步:在项目根目录创建一个packages文件夹,把修改好的react-native-push-notification整个文件夹复制进去
  • 第二步:修改项目的package.json,把依赖指向本地路径:
    "dependencies": {
      // ... 其他依赖
      "react-native-push-notification": "file:./packages/react-native-push-notification"
    }
    
  • 第三步:执行npm install确认依赖生效,这时候npm会使用本地的包,不会从远程拉取原始版本
  • 第四步:把packages文件夹提交到Git,这样整个自定义包就跟着项目一起托管了

方案3:Fork原仓库并托管自己的版本(适合长期维护自定义修改的场景)

如果你的修改需要长期迭代,或者想和团队共享这个自定义版本,Fork原仓库是最好的选择:

  • 第一步:在GitHub/GitLab上fork官方的react-native-push-notification仓库到你自己的账号下
  • 第二步:克隆你自己的仓库到本地:
    git clone https://github.com/你的用户名/react-native-push-notification.git
    
  • 第三步:在本地修改代码,完成后提交到你仓库的一个专属分支(比如feature/custom-push-notification),然后推送到远程
  • 第四步:修改你的项目的package.json,把依赖换成你自己的Git仓库地址:
    "dependencies": {
      // ... 其他依赖
      "react-native-push-notification": "git+https://github.com/你的用户名/react-native-push-notification.git#feature/custom-push-notification"
    }
    
  • 第五步:执行npm install,npm会拉取你自己仓库的版本,后续再执行npm install也不会覆盖你的修改
  • 第六步:你的自定义包版本就在自己的Git仓库里,后续可以继续维护更新,团队成员也能直接通过这个Git地址使用你的修改

各方案对比

  • patch-package:轻量,适合小修改,不影响原始包结构,但修改太大的话补丁文件会比较复杂
  • 本地依赖:操作简单,适合一次性大修改,但包会占用项目空间,不方便跨项目复用
  • Fork仓库:适合长期维护,方便跨项目共享,但需要单独维护一个仓库分支

内容的提问来源于stack exchange,提问作者HungrySoul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:24:57