npm登录不允许登录github

Sta*_*God 22 npm npm-install

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

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`
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

我想我可能需要创建一个带有令牌等的 ~/.npmrc 文件,但无法弄清楚如何做到这一点。

小智 38

--auth-type=legacy如果您使用 npm 版本 9,您应该添加带有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用于 npmloginadduser 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
Run Code Online (Sandbox Code Playgroud)

替换OWNER为 GitHub 上拥有包含您的项目的存储库的用户或组织帐户的名称,以及TOKEN您的个人访问令牌(经典)。

我执行了上面的步骤,而不是npm login --scope=@OWNER --registry=https://npm.pkg.github.com. npm run build末尾跟着一个。

请阅读有关使用 npm 注册表的文档以了解更多信息。