使用'npm install'安装依赖项时忽略特定包

时间:2018-04-24 10:55:17

标签: node.js git react-native github npm

我有一个节点包react-native-push-notification,我已经在包中做了一些更改以满足我的要求。但每次我执行npm install新的(没有我的更改的原始包)包与我当前的包重叠。

有什么办法可以限制npm install忽略我修改后的包裹吗?而且我想把这个包推到git。

任何领导都将受到高度赞赏。

4 个答案:

答案 0 :(得分:1)

如果我理解正确,您已对现有节点包react-native-push-notification进行了一些更改,而您宁愿使用自己的版本而不是原始版本。

您有几个选择:

  • package.json更改react-native-push-notification以指向您的git repo(例如您在github上的fork)。这并不理想,因为它会使semver出现问题。但它确实有效。
  • 重命名包的fork并直接从npm使用它。例如。重命名为react-native-push-notification2甚至更好,请使用范围包名称,例如@yournick/react-native-push-notification并将其发布到npm。更改您的package.json以改为使用此软件包。
  • 说服原始软件包的作者合并您的更改。这是理想的解决方案,但可能很难将您的补丁合并等。

答案 1 :(得分:0)

处理此问题的最佳方法是分配回购https://help.github.com/articles/fork-a-repo/

这样,您就可以控制包的内容。

然后使用您的回购地址更新package.json

我还建议不要将你的软件包推送给Git。软件包已经受版本控制(在他们自己的仓库中),推送到Git只会毫无理由地膨胀你的回购。

答案 2 :(得分:0)

patch-package正是您要寻找的东西:https://github.com/ds300/patch-package

即使运行npm install,它也会保留您的更改。

答案 3 :(得分:0)

是的,您可以轻松完成。所有的拳头都转到插件GitHub存储库,然后将其派生到您的个人资料。如果要从直接仓库安装此插件,必须先运行以下命令-

npm i https://github.com/zo0r/react-native-push-notification.git

但是在派生成功后,它将安装您进行了更改的修改后的文件,命令应为-

npm i https://github.com/YourUserName/react-native-push-notification.git

使您的修改文件永不改变。