Node.js 使用';安装依赖项时忽略特定包;npm安装';

Node.js 使用';安装依赖项时忽略特定包;npm安装';,node.js,git,react-native,github,npm,Node.js,Git,React Native,Github,Npm,我有一个节点包react-native-push-notification,为了满足我的需求,我在包中做了一些更改。但是每次我执行npm安装时新的(没有更改的原始软件包)软件包与当前软件包重叠 我有没有办法限制npm安装忽略我修改过的软件包?我还想把这个包推到git上 任何潜在客户都将受到高度赞赏。处理这一问题的最佳方式是进行回购 这样,您就可以控制包的内容 然后用您的回购地址更新您的package.json 我还建议不要将包推送到Git。包已经在版本控制下(在其自己的repo中),推送到Git

我有一个节点包
react-native-push-notification
,为了满足我的需求,我在包中做了一些更改。但是每次我执行
npm安装时
新的(没有更改的原始软件包)软件包与当前软件包重叠

我有没有办法限制npm安装忽略我修改过的软件包?我还想把这个包推到git上


任何潜在客户都将受到高度赞赏。

处理这一问题的最佳方式是进行回购

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

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


我还建议不要将包推送到Git。包已经在版本控制下(在其自己的repo中),推送到Git会毫无理由地膨胀您的repo。

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

您有两个选择:

  • package.json
    change
    react native push notification
    中,指向您的git repo(例如,您在github上的fork)。这并不理想,因为它使semver成为问题。但它是有效的
  • 重命名包的分叉并直接从npm使用它。例如,重命名为
    react-native-push-notification2
    ,或者更好,使用范围限定的包名,例如
    @yournick/react-native-push-notification
    ,并将其发布到npm。将您的
    package.json
    更改为使用此包
  • 说服原始包的作者合并您的更改。这是理想的解决方案,但可能很难合并修补程序等

补丁包
正是您想要的:


即使在运行
npm install

之后,它也会保留您所做的更改。是的,您可以非常轻松地执行此操作。首先,转到插件GitHub存储库,然后将其转移到您的个人资料中。如果要从direct repo安装此插件,必须先运行以下命令-

npm i https://github.com/zo0r/react-native-push-notification.git
但是在fork成功后,它将安装您所做更改的修改过的文件,并且命令应该是-

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

而且你修改的文件永远不会改变。

谢谢你,它成功了。但我有一个问题?这合法吗?Fwiw,这不是一个理想的解决方案,因为它会把semver搞得一团糟。如果你正在进行公开回购,那么是的。只要您遵守程序包的条款和条件-。嗨,分叉回购可以帮助我解决问题,但使用我的帐户将代码发布到npm中是否合法?@HungrySoul。您不能发布到某人的npm帐户中。您只能发布到自己的包,并且不能有两个同名的包。所以你必须给它一个新的名字和用法it@HungrySoul. 你不能发布到某个人的npm帐户中。您只能发布到自己的包,并且不能有两个同名的包。所以你必须给它一个新的名字和用法it@HungrySoul不,您显然不能发布到相同的包名,因为您没有访问该包的权限。因此,为什么需要将包名称更改为可以发布到的可用名称。