无法登录GitHub软件包注册表

19

我正在尝试通过GitHub Package Registry发布npm包,我正在遵循文档操作。在输入用户名密码(虽然都正确)后,当我尝试使用以下命令登录时,总是会收到以下错误信息。

// Step 2: Authenticate
$ npm login --registry=https://npm.pkg.github.com/

错误日志:

npm login --registry=https://npm.pkg.github.com/
Username: ***********
Password:
Email: (this IS public) *****************
npm ERR! code E401
npm ERR! Registry returned 401 for PUT on https://npm.pkg.github.com/-/user/org.couchdb.user:kgangadhar: Error authenticating user: Bad credentials

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\karth\AppData\Roaming\npm-cache\_logs\2019-10-31T05_35_05_829Z-debug.log

有人知道如何解决这个问题吗?

4个回答

26

注册令牌需要哪些范围?谢谢。 - Erick M. Sprengel
2
选择 repo 作为范围。 - jefelewis

24
我遇到了同样的问题,因为我试图使用我的Github密码登录,实际上您需要使用Github个人访问令牌作为密码
Username: YOUR_GITHUB_USERNAME  
Password: YOUR_GITHUB_PERSONAL_ACCESS_TOKEN  
Email: YOUR_EMAIL

10
本文提到了与您正在执行的相同命令,先前的答案是正确的。只是在这里留下这个来加强它: 链接到Github配置页面 只需使用Ctrl + F搜索npm login --registry=https://npm.pkg.github.com即可。

2
发布一个包
根据2023年的要求,要使用单个npm publish命令将一个包发布到GitHub NPM包注册表,首先需要配置以下3个事项:
你的GitHub存储库:create,并将访问令牌保存在某个地方。 package.json(只给出与发布相关的字段,其余字段根据需要进行配置):
{ // 任何@my-gh-account-name的实例都必须是小写 "name": "@my-gh-account-name/my-package", "version": "0.1.0", "publishConfig": { // 将注册表的前缀设置为以下内容 "@my-gh-account-name:registry": "https://npm.pkg.github.com" }, "repository": { "type": "git", "url": "https://github.com/my-gh-account-name/my-package-repository.git" } }
.npmrc:
//npm.pkg.github.com/:_authToken=${GITHUB_AUTH_TOKEN}
然后将GITHUB_AUTH_TOKEN环境变量分配为在1中创建的令牌值,可以通过操作系统终端(在Linux中为GITHUB_AUTH_TOKEN=token,在Windows 10中为$env:GITHUB_AUTH_TOKEN="token")或其他方式进行设置。
现在将您的软件包构建到dist/文件夹中,然后使用npm publish ./dist发布它。
要在GitHub组织下发布软件包,请将my-gh-account-name替换为组织名称。 安装软件包 在您想要安装软件包的Node应用程序中,创建.npmrc文件,并添加以下内容:
@my-gh-account-name:registry="https://npm.pkg.github.com"
//npm.pkg.github.com/:_authToken=${GITHUB_AUTH_TOKEN}

然后按照上面发布的步骤设置GITHUB_AUTH_TOKEN变量。
现在在终端中输入npm i @my-gh-account-name/my-package命令,即可安装该包。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接