无法修改和测试分叉的GitHub库 - npm ERR!版本未找到

时间:2015-07-31 07:19:57

标签: javascript node.js git github npm

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

我已经分配了回购并修改了它但我无法测试它。

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

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

现在我在npm install中运行test-project但我收到此错误:

npm ERR! version not found: forked-library@1.0.1

我期待自从我在全球安装它之后,这个项目将从我的本地npm缓存(我可以看到1.0.1版本)解析它,但它似乎是在npm在线存储库中寻找它。 / p>

2 个答案:

答案 0 :(得分:1)

虽然nwinkers解决方案更方便,但我将其作为替代方案发布:

  1. 将您的forked-library更改推送到GitHub。
  2. 在您的GitHub forked-library页面的右侧,获取下载ZIP 按钮指向的网址,将存档替换为 tarball 并删除.zip扩展名。例如:https://github.com/somebody/forked-library/archive/master.zip => https://github.com/somebody/forked-library/tarball/master
  3. 更改forked-library text-projectpackage.json的版本,使其指向您在步骤2中获得的修改后的网址:https://github.com/somebody/forked-library/tarball/master
  4. 现在,您可以在npm install中执行test-project并对抗已修补的lib。

答案 1 :(得分:0)

npm install命令将始终尝试从npm注册表中查找已发布的版本。既然你还在开发中,它就不会在那里找到它。

要解决此问题,您可以使用npm link命令 - 它将设置指向本地开发版本的符号链接。

以下是如何使用它:

# 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

执行此操作后,您应该从forked-library文件夹中获得指向本地test-project/node_modules文件夹的符号链接。

这将允许您使用开发版本而不释放它。您可以在分叉库中进行更改,它们将立即显示在您的测试项目中。

这是npm link documentation