我会说我仍然是使用git和开发Web应用程序的初学者。我已经遇到过几次这个问题,想问一下社区解决它的首选方法是什么。问题是,假设我正在开发一个Web应用程序MyWebApp,该应用程序导入了几个npm模块。假设它正在使用第三方npm模块Module1。现在,我需要Module1中的几个功能,这些功能目前尚不存在,所以我想自己添加这些功能并在完成后提交PR。现在,通常在node_modules文件中包含.gitignore目录,因此git不会跟踪我直接在node_modules目录下进行的更改。此外,我需要从原始Module1存储库中分叉一个存储库才能提交PR。因此,我这样做并更新我的package.json以说Module1: "username/Module1并将分叉的仓库克隆到一个单独的目录中,并开始添加到那里,当我执行npm update Module1时将获得的功能。这就是问题所在。由于添加新功能是一个反复的过程,因此在克隆存储库中添加某些东西,推送更改然后运行npm update Module1只是发现您错过了另外一件小东西,然后整个事情又重新开始,这是一个相当大的往返时间。 。

人们如何解决这个问题?他们是否在Web应用程序的Module1目录本身中克隆了分叉的node_modules的存储库?我不确定这是否行得通。请分享您的解决方案。谢谢!

最佳答案

我喜欢这个问题,因为它是对正常问题的一种颠覆,在这个问题中,人们试图将git子树用作项目依赖项,并且从不向后提交对子树的提交。在这种情况下,他们应该使用像npm这样的软件包管理器。您有相反的情况。与其将这些软件包作为依赖项包括在内,不如将它们作为子树移植到父项目存储库中。然后,您可以轻松地通过Google搜索将提交反向移植到程序包克隆的子树存储库的步骤,最后向供应商打开拉取请求。

关于node.js - 在处理我的应用程序时,如何增强第三方npm模块以在github上提交PR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38024823/

10-10 00:32