我该如何追踪为什么在一个包上运行npm install时会出现github登录弹出窗口

new9mtju  于 2023-08-01  发布在  Git
关注(0)|答案(1)|浏览(328)

我开始了一个新项目。我使用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登录对话框弹出? 我该如何追踪这个问题?打开此对话框时,是否有详细模式的调试日志记录?*

bprjcwpo

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位置安装的。

mkdir test-git-popup
cd test-git-popup
npm init -y
npm install https://github.com/sindresorhus/is/tarball/v0.14.0
cat package.json
 . . . truncated . . .
  "dependencies": {
    "@sindresorhus/is": "https://github.com/sindresorhus/is/tarball/v0.14.0"
  }

字符串
上面的操作应该在没有GitHub登录弹出窗口的情况下工作,因为资源位于公共GitHub仓库中。
但是,如果GitHub仓库是私有的,那么GitHub登录弹出窗口就会出现。这个弹出窗口看起来像这样:


的数据
总结:公共GitHub存储库不需要用户登录即可访问,但私有存储库需要登录。
在我的例子中,被请求的npm包位于一个私有的GitHub存储库中。
为了说明使用浏览器的问题,请使用匿名浏览器会话打开列出的URL(在package.json文件中)。
在我的示例中,URL将是:https://github.com/sindresorhus/is/tarball/v0.14.0,因为依赖项如下:

"@sindresorhus/is": "https://github.com/sindresorhus/is/tarball/v0.14.0"


如果在打开URL(从匿名会话)之后,如果您看到一个要求您登录的屏幕,那么这相当于npm试图访问资源时发生的情况。
下面是我在尝试从私有GitHub仓库访问资源时看到的屏幕。


相关问题