我开始了一个新项目。我使用ssh-agent
和ssh密钥来克隆和更新github。在三个不同的githhub仓库上,当我运行
git clone git@github.com:mygithub/example.git
cd example
npm install
字符串
我得到了弹出窗口:
x1c 0d1x的数据
我搜索了一下发现
但是我已经在github上使用pub/private keypair了。
弹出了四个GitHub登录对话框窗口,但在我单击登录对话框中的X后,npm安装继续运行并完成安装所有内容(我认为)。
在npm install
中,其中一个对话框提示之前打印的最后一行是:
[#####] \ reify:core-js: timing reifyNode:node_modules/es-abstract Completed in 11908ms
型
我的package.json中的什么导致GitHub登录对话框弹出? 我该如何追踪这个问题?打开此对话框时,是否有详细模式的调试日志记录?*
1条答案
按热度按时间bprjcwpo1#
GitHub登录弹出窗口很可能来自github中列出的受“密码”保护的依赖项(就像私有的GitHub repo)。
一般语法是
https://example.com/some/package/not-published-in-npm.tgz
。下面我给予命令来说明发生这种情况的原因。在这个例子中,我使用一个公共GitHub repo https://github.com/sindresorhus/is来说明导致弹出的URL类型(对于私有GitHub repo)。
下面的命令集允许您在一个安全的测试目录
test-git-popup
中进行测试。@sindresorhus/is
包是使用它的GitHub位置安装的。字符串
上面的操作应该在没有GitHub登录弹出窗口的情况下工作,因为资源位于公共GitHub仓库中。
但是,如果GitHub仓库是私有的,那么GitHub登录弹出窗口就会出现。这个弹出窗口看起来像这样:
的数据
总结:公共GitHub存储库不需要用户登录即可访问,但私有存储库需要登录。
在我的例子中,被请求的npm包位于一个私有的GitHub存储库中。
为了说明使用浏览器的问题,请使用匿名浏览器会话打开列出的URL(在
package.json
文件中)。在我的示例中,URL将是:https://github.com/sindresorhus/is/tarball/v0.14.0,因为依赖项如下:
型
如果在打开URL(从匿名会话)之后,如果您看到一个要求您登录的屏幕,那么这相当于npm试图访问资源时发生的情况。
下面是我在尝试从私有GitHub仓库访问资源时看到的屏幕。
的