当我尝试在终端中运行以下命令时,它应该要求我输入用户名和密码,但除了下面的错误之外什么也没有出现。
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 版本 9,则应添加参数
--auth-type=legacy
与 npm adduser
或 npm login
。否则,你会得到错误npm ERR! Web login not supported
。
从 npm v9 开始,需要
--auth-type=legacy
参数才能使用 GitHub Packages 进行身份验证。
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
将
.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 注册表