yarn 拉取私有仓库时返回403无权限

在使用 yarn install 安装私有包时,由于仓库需要认证,但 Yarn 的安装过程不允许交互式提示,所以当 Git 请求用户名时,它无法提供,会导致权限被拒的情况:

1
2
3
remote: [session-2a4ee1aa] Access denied
fatal: unable to access 'https://gitee.com/my-packages/camera-preview.git/': The requested URL returned error: 403
root@d24630a9ec27:/app/frontend-cross# git ls-remote --tags --heads https://gitee.com/my-packages/camera-preview.git

可以使用两种方法来解决。

在 Git 中设置凭据

使用如下命令来设置凭据,然后使用使用 git 访问仓库,按提示输入用户名和密码。

1
git config --global credential.helper store

这种方法会在你的计算机上明文存储你的密码

使用 ssh

直接在 package.json 文件中使用 SSH URL 而不是 HTTPS URL 来引用 Git 依赖。需要在 gitee.com 上设置 SSH 密钥。然后,像这样引用:

1
2
3
"dependencies": {
"camera-preview": "git+ssh://[email protected]/my-packages/camera-preview.git"
}

这种方法的优点是它不需要存储你的用户名和密码,但是需要配置 SSH 密钥