无法修改和testing分叉的GitHub库 – npm ERR! 版本未find

我是所有这Github分叉请求生命周期noobie。 我想要做的是在提交一个pull请求之前,fork一个仓库,进行一些更改并在项目上尝试它们。

我已经分叉回购和修改它,但我无法testing它。

假设我将package.json中的分叉库的版本增加到了1.0。 1 。 然后我执行npm install -g

现在我想在另一个test-projecttesting它,所以我使用新的固定版本的库(1.0.1)更新了package.json devDependencies信息。

现在我运行npm installtest-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更方便我发布这个作为替代:

  1. forked-library更改推送到GitHub。
  2. 在你的GitHub forked-library页面的右边,获取下载ZIPbutton指向的URL,replace压缩 包的压缩 文件并删除.zip扩展名。 例如: https://github.com/somebody/forked-library/archive/master.zip => https://github.com/somebody/forked-library/tarball/masterhttps://github.com/somebody/forked-library/archive/master.zip => https://github.com/somebody/forked-library/tarball/master
  3. 更改text-projectpackage.json forked-library的版本,以指向您在步骤2中获得的修改后的URL: https://github.com/somebody/forked-library/tarball/masterhttps://github.com/somebody/forked-library/tarball/master

现在你可以在test-project执行npm install ,并且对补丁库进行处理。