如何在Vercel部署的NextJS项目中使用GitHub私有Git仓库依赖
遗漏配置&解决步骤
一、GitHub私有包未生成的遗漏配置
你需要补充以下配置和操作才能成功发布GitHub私有包:
- 组件库
package.json的name字段必须改为作用域包格式,示例:"name": "@Me/datatable",其中前缀@Me必须和你的GitHub用户名完全一致,大小写匹配 - 登录GitHub账号生成一个具备
write:packages权限的Personal Access Token(PAT) - 在本地用户根目录的
.npmrc文件中添加认证配置://npm.pkg.github.com/:_authToken=你生成的PAT - 每次发版前先更新组件库
package.json的version字段,再执行npm publish命令,发布成功后可在GitHub仓库的「Packages」栏查看已发布的包
二、Vercel构建失败的解决配置
你之前用SSH协议拉取私有Git依赖,Vercel构建环境没有对应SSH密钥所以拉取失败,配置完私有包后按以下步骤修改即可:
- 把CMS项目
package.json中原有的git+ssh://git@github.com/Me/datatable.git依赖,替换为"@Me/datatable": "^你发布的版本号" - 在CMS项目根目录新增
.npmrc文件,写入以下内容:
@Me:registry=https://npm.pkg.github.com //npm.pkg.github.com/:_authToken=${GITHUB_PACKAGES_TOKEN}
- 打开Vercel对应项目的环境变量配置页,新增名为
GITHUB_PACKAGES_TOKEN的环境变量,值为你之前生成的PAT(仅需read:packages权限即可) - 重新推送代码触发Vercel构建即可正常完成依赖安装
可选临时方案(无需发布包)
如果暂时不想走私有包发布流程,也可以直接把依赖地址改为带认证的HTTPS格式:git+https://你的PAT@github.com/Me/datatable.git,但该方式会明文暴露PAT,仅适合临时测试使用。
内容的提问来源于stack exchange,提问作者Mike Willis
相关产品推荐
相关产品推荐

