无法在Github注册表中安装npm软件包

时间:2019-11-26 22:50:04

标签: github npm github-package-registry

我已将软件包发布到GitHub npm注册表。根据以下屏幕截图,当我登录GitHub时可以看到该软件包。

ScreenShot 1 enter image description here

ScreenShot 2 enter image description here

在本地,其他软件包将前者作为依赖项。因此,我在package.json上:

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

与文档一致,我还具有一个.npmrc文件,该文件与带有authToken的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。如上图所示,包装很明显就在那里。

有人有类似的问题吗?

2 个答案:

答案 0 :(得分:1)

好吧,我自己的.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中添加我的组织,而是指定了用于每个范围的注册表。

答案 1 :(得分:1)

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