如何在 React 中使用分叉的 NPM 依赖项
介绍
在项目中使用开源软件时,您很可能会遇到无法完全满足您需求的 NPM 依赖项。此依赖项可能是您正在寻找的问题的 95% 解决方案,但可能缺少您需要的功能,或者存在需要针对您的用例进行解决的错误。那么在这种情况下您会怎么做?如果您的团队没有时间创建自己的问题自定义解决方案,那么最好向相关存储库创建拉取请求。这在积极维护的项目中非常有效,但有时可能需要数月甚至数年才能将某些拉取请求合并到项目中。
解决此限制的一种方法是创建您自己的项目分支。您可以随心所欲地更改项目代码,添加该功能或修复该错误。完成后,您可以将拉取请求提交给上游开源项目……但是在等待此拉取请求合并的同时,您是否知道现在只需更改 package.json 文件即可使用分支中的代码?在本指南中,您将学习如何做到这一点!
让我们开始吧。
使用分叉的 NPM 依赖项
为了将分叉的依赖项安装到您的项目或应用中,您首先需要创建一个分叉!在 GitHub 中创建分叉的存储库非常容易。您所要做的就是导航到要分叉的项目的存储库并选择 Fork按钮。单击此按钮后,GitHub 将在您的用户命名空间中创建此存储库的副本。如果存储库位于user-name/custom-npm-dep,那么您现在将在您的用户命名空间中拥有一个新的存储库,如下所示:<your-user-name>/custom-npm-dep。
项目分叉后,下一步是进行代码更改以促进您正在寻找的行为。通常,NPM 项目有一个CONTRIBUTING.md文件,其中提供了有关如何成功向项目提交拉取请求的详细指南。如果此文件存在,请务必查看!
完成所需的代码更改后,您就可以提交拉取请求了。这可以在 GitHub 的 UI 中轻松完成。有关更多信息和详细指南,请查看此处。
现在你处于“拉取请求不确定”状态……谁知道这个拉取请求需要多长时间才能合并,依赖项的新版本才能发布?!但没关系——有办法解决这个等待时间。让我们看一个不使用分叉项目的示例package.json :
"dependencies": {
"custom-node-dep": ^1.2.3
...
}
目前,您正在直接从 NPM 安装custom-node-dep包。为了使用 fork,请将配置中的此行更改为:
"dependencies": {
"custom-node-dep": "https://github.com/<your-user-name>/custom-node-dep.git"
...
}
上述配置将custom-node-dep项目的版本号更改为源代码的直接链接。如果所讨论的项目是一个使用prepublish命令设置好的库,那么这就是您需要做的全部工作!但是,如果项目安装不正确,则可能必须手动构建它。您可以通过确保在构建后分叉存储库中的所有构建文件都不会从源代码管理中隐藏来实现这一点。如何执行此操作特定于分叉项目。通常,npm run build命令足以构建项目。无论将构建文件输出到哪个目录,您都需要确保从.gitignore中删除。这将确保当您npm install应用程序的依赖项时, package.json下载所有需要的构建文件。
结论
就这样!由于 NPM 允许直接从源代码控制下载软件包,因此您不必等待拉取请求合并,并且您的应用现在可以从自定义代码更改中受益。此功能可以让您的团队快速修复来自第三方依赖项的错误。
有关更多信息,请查看 NPM文档的“依赖项”部分。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~