8

我已将一个包发布到 GitHub npm 注册表。根据下面的屏幕截图,我可以在登录 GitHub 时看到该包。

截图 1 在此处输入图像描述

截图 2 在此处输入图像描述

在本地,不同的包将前者作为依赖项。因此我有我的package.json

"dependencies": {
    "<@scope>/<package_name>": "1.2.0",
...

根据文档,我还有一个与 authToken.npmrc位于同一目录中的文件。package.json此 authToken 具有所有必要的权限 ( delete:packages, read:packages, repo, write:packages)

//npm.pkg.github.com/:_authToken=<my_auth_token>
registry=https://npm.pkg.github.com/OWNER

最后,我有package.json以下两个条目。虽然我相信这些对于将包发布到 github 注册表是必要的,但不安装它们是当前的问题。

  "publishConfig": {
    "registry": "https://npm.pkg.github.com/"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/<OWNER>/<REPO>.git"
  }

因此,当我尝试安装软件包时遇到的错误是:

npm ERR! code E404
npm ERR! 404 Not Found: <@scope>/<package_name>@1.2.0

当我试图了解一些有用的日志发生了什么时:使用npm install @<scope>/<package_name>@1.2.0 --loglevels verbose,我看到:

....
npm http fetch GET 200 https://npm.pkg.github.com/OWNER/@<scope>%2f<package_name>
npm http fetch GET 404 https://npm.pkg.github.com/download/@<scope>/<package_name>/1.2.0/98e69e2adddec5c715a32c94352efac83ce586e4e6f3d06fef1fc1f82d238r34
...

第一个 http 请求是成功的,这似乎表明事情已正确连接和验证。但是,我不知道为什么之后我会收到 404。正如我们在上图中看到的那样,包裹显然在那里。

有没有人有类似的问题?

4

2 回答 2

4

好吧,我自己的 .npmrc(在我的主目录中)配置如下:

//registry.npmjs.org/:_authToken=<token>
//npm.pkg.github.com/:_authToken=<token>
@myorg1:registry=https://npm.pkg.github.com
@myorg2:registry=https://registry.npmjs.org

我没有像您那样在 github 注册表 URL 中添加我的组织,并指定要用于每个范围的注册表。

于 2019-11-28T08:13:13.567 回答
1

我刚刚遇到了同样的问题。删除 package-lock.json 为我修复了它。我怀疑问题是我以前从 tarball 安装了有问题的包,并且旧的安装信息以某种方式缓存在 package-lock.json 中

于 2021-07-23T12:01:24.867 回答