npm 登录不允许登录 github

问题描述 投票:0回答:4

当我尝试在终端中运行以下命令时,它应该要求我输入用户名和密码,但除了下面的错误之外什么也没有出现。

npm login --registry=https://npm.pkg.github.com --scope=@Psychedelic

npm notice Log in on https://npm.pkg.github.com/
npm ERR! code ENYI
npm ERR! Web login not supported`

有什么想法吗?

我想我可能需要创建一个带有令牌等的 ~/.npmrc 文件,但不知道如何做到这一点。

npm npm-install
4个回答
38
投票

如果您使用 npm 版本 9,则应添加参数

--auth-type=legacy
npm adduser
npm login
。否则,你会得到错误
npm ERR! Web login not supported


16
投票

从 npm v9 开始,需要

--auth-type=legacy
参数才能使用 GitHub Packages 进行身份验证。

https://docs.npmjs.com/cli/v9/commands/npm-login


7
投票

NPM V9 现在使用 Web 登录作为其默认身份验证类型。由于 NPM 支持将私有包发布到其注册表,因此它也支持使用“私有注册表”。我假设您使用的是像 Verdaccio 这样的私有注册表。随着 NPM V9 的发布,出现了重大的突破性变化。要了解有关他们的更多信息查看此博客 受影响的更改之一是

auth-type

,它们用于 npm

login
adduser
CLI
命令。

现在
    auth-type
  • 是通过
    default
    进行网页登录。
    仅支持 
  • auth-type
  • web
    两种类型的
    legacy
    
    
  • 因此,在系统中生成
.npmrc

令牌的简单解决方案是始终强制

auth-type
,如下所示:

npm 登录 --registry=https://registry.dojo.com --auth-type=legacy

如果仍然不起作用,请尝试增加日志级别

npm 登录 --registry=https://registry.dojo.com --auth-type=legacy --loglevel=verbose


2
投票

.npmrc

文件添加到您的项目中,与您的

package.json
文件位于同一目录中,并包含以下内容:
@OWNER:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=TOKEN

OWNER

替换为 GitHub 上拥有包含您项目的存储库的用户或组织帐户的名称,并将

TOKEN
替换为您的个人访问令牌(经典)。
我执行了上述步骤,而不是

npm login --scope=@OWNER --registry=https://npm.pkg.github.com

。 末尾带有

npm run build
npm i
阅读有关 

使用 npm 注册表

的文档以了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.