无法修改和testing分叉的GitHub库 – npm ERR! 版本未find
我是所有这Github分叉请求生命周期noobie。 我想要做的是在提交一个pull请求之前,fork一个仓库,进行一些更改并在项目上尝试它们。
我已经分叉回购和修改它,但我无法testing它。
假设我将package.json中的分叉库的版本增加到了1.0。 1 。 然后我执行npm install -g
。
现在我想在另一个test-project
testing它,所以我使用新的固定版本的库(1.0.1)更新了package.json devDependencies信息。
现在我运行npm install
在test-project
但我得到这个错误:
npm ERR! version not found: forked-library@1.0.1
我期待,因为我在全球安装它,这个项目将从我的本地npmcaching(我可以看到1.0.1版本)解决它,但它似乎是在npm在线存储库中查找它。
npm install
命令将总是试图从npmregistry中find一个已发布的版本。 既然你还在开发中,那就不会在那里find它。
要解决这个问题,你可以使用npm link
命令 – 它将build立一个到你本地开发版本的符号链接。
以下是如何使用它:
# CD to the forked-library project cd ~/forked-library # Call npm link to create a global link npm link # CD to the test project cd ~/test-project # Call npm link to link the development version to this project npm link forked-library
这样做之后,你应该有一个从test-project/node_modules
文件夹到本地forked-library
文件夹的符号链接。
这将允许您使用开发版本而不释放它。 您可以在分叉库中进行更改,并且可以立即在您的testing项目中看到它们。
这是npm链接文档 。
虽然nwinkers解决scheme更方便我发布这个作为替代:
- 将
forked-library
更改推送到GitHub。 - 在你的GitHub
forked-library
页面的右边,获取下载ZIPbutton指向的URL,replace压缩 包的压缩 文件并删除.zip扩展名。 例如:https://github.com/somebody/forked-library/archive/master.zip => https://github.com/somebody/forked-library/tarball/master
:https://github.com/somebody/forked-library/archive/master.zip => https://github.com/somebody/forked-library/tarball/master
。 - 更改
text-project
的package.json
forked-library
的版本,以指向您在步骤2中获得的修改后的URL:https://github.com/somebody/forked-library/tarball/master
:https://github.com/somebody/forked-library/tarball/master
现在你可以在test-project
执行npm install
,并且对补丁库进行处理。