对于我的项目,我正在尝试从GitHub Packages安装(而不是发布!)npm软件包。它托管在组织中的私有存储库中。我已经制作了一个具有所需权限的个人访问令牌,可以从该存储库和组织中进行读取。所有这些操作在本地运行都可以通过以下步骤进行:
- 在
.npmrc
文件中设置注册表:registry=https://npm.pkg.github.com/OWNER
- 终端登录:
npm login --registry=https://npm.pkg.github.com
然后它将提示:
> username: username
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS
-
username
是您的标准github用户名 -
Token
是具有正确权限创建的个人访问令牌 -
Email
可以是随机的
填写后,一切正常,我可以安装packge以及正常npm注册表中托管的所有其他软件包。
现在解决问题:我正在尝试在circleCI上复制相同内容,但似乎没有让我覆盖npm注册表。项目在.npmrc
所在的同一文件夹中包含一个package.json
文件。这是圈子ci conf的一部分:
- run:
name: "Set NPM registry"
command: npm config set registry https://npm.pkg.github.com/OWNER
- run:
name: "Authenticate with GitHub package registry"
command: echo "//npm.pkg.github.com/:_authToken=${GITHUB_PACKAGES}" > web_ui/frontend/.npmrc
- run:
name: "Install frontend dependencies"
command: npm run deps-frontend
GITHUB_PACKAGES
只是存储在circleCI中的一个env变量。
现在错误消息告诉我以下内容:
npm ERR! code E401
npm ERR! Unable to authenticate,need: Basic realm="GitHub Package Registry"
我尝试使用谷歌搜索,但没有任何结果。