如何在项目中使用 npm 包的 fork 版本
Posted
技术标签:
【中文标题】如何在项目中使用 npm 包的 fork 版本【英文标题】:How to use fork version of npm package in a project 【发布时间】:2018-04-17 18:06:28 【问题描述】:假设有一个名为 abcd
的 npm 包。
通常在package.json
中,我们将依赖项指定为
"abcd": "^1.0.0",
但是这个abcd
没有按预期工作,所以我在https://github.com/mygithubid/abcd 中分叉(并修改)了它
然后我运行npm install git+https://git@github.com/mygithubid/abcd.git
并在package.json
中,定义更改为
"abcd": "git+https://github.com/mygithubid/abcd.git",
重新启动使用这个abcd
的项目后,现在它会抛出错误
Module not found: Can't resolve 'abcd'
...即使我看到 abcd
文件夹被添加到 node_modules
中
您能指出我在上面犯的错误吗?谢谢!
【问题讨论】:
How to install an npm package from GitHub directly?的可能重复 npm install github:mygithubid/abcd 。退房 其实node_modules
中添加了新的abcd
,但是应用还是报错Module not found: Can't resolve 'abcd'
如果您不介意分叉并在本地下载:***.com/questions/14381898/…
谢谢,Alon,如果我需要在本地下载,问题不大……我正在尝试在 Github.com 中分叉并在 Github.com 中进行修改。这不是常用的方法吗?
【参考方案1】:
一个相当干净的选择是使用patch-package
:
https://www.npmjs.com/package/patch-package
如果使用您的项目的人可能使用 npm 或 yarn,请记住让补丁对两者都可用。 patch-package --use-yarn
下的更多信息。
补丁还是分叉?见https://www.npmjs.com/package/patch-package#benefits-of-patching-over-forking
【讨论】:
救了我的命。谢谢!【参考方案2】:确保 github 存储库包含编译文件,大多数情况下您需要先为 npm 构建包,编译文件仅推送到 NPM。 要了解如何构建包,请查看 package.json 文件
【讨论】:
您能否提供更详细的步骤来“了解如何构建软件包”或至少参考指南? @lacostenycoder 它取决于插件本身。不可能给出一个普遍的答案。无论如何,如果你不知道从哪里开始,你可以打开package.json
文件并检查scripts
属性,它通常包含一个build
脚本。以上是关于如何在项目中使用 npm 包的 fork 版本的主要内容,如果未能解决你的问题,请参考以下文章