You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将发布到GitHub Packages注册表的NPM包下载为zip压缩包?

GitHub Packages 私有NPM包指定版本下载方案

前置准备

提前创建具备read:packages权限的GitHub个人访问令牌(PAT),若包属于组织账号,需确保令牌已获得对应组织的访问授权。

方案1:通过NPM registry获取(适合自动化脚本集成)

  • 先完成NPM的GitHub Packages身份校验:
    npm config set //npm.pkg.github.com/:_authToken 你的PAT值
  • 执行命令获取指定版本包的下载地址:
    npm view @<用户名/组织名>/<包名>@<版本号> dist.tarball
    示例:npm view @testuser/test-pkg@1.0.0 dist.tarball
  • 使用curl带身份信息直接下载包文件(默认是tgz格式):
    curl -L -O -H "Authorization: token 你的PAT值" <上一步获取的下载地址>
  • 如需转换为zip格式,执行如下命令即可:
    tar -xzf <下载得到的tgz文件名> && zip -r <目标压缩包名>.zip package/

方案2:通过GitHub REST API直接获取

  • 调用包版本查询接口,个人账号发布的包接口格式为:
    GET https://api.github.com/users/<用户名>/packages/npm/<包名>/versions/<版本号>
    组织账号发布的包接口格式为:
    GET https://api.github.com/orgs/<组织名>/packages/npm/<包名>/versions/<版本号>
  • 请求时需要携带两个头信息:
    • Authorization: token 你的PAT值
    • Accept: application/vnd.github.v3+json
  • 接口返回结果中提取tarball_url字段值,即为该版本包的下载地址,同方案1用curl下载后按需转zip即可

注意事项

  • 所有涉及的包名必须携带作用域前缀,即@<用户名/组织名>/<包名>格式,不可省略前缀直接使用短包名
  • 自动化脚本中可以把上述步骤合并,不需要存储中间文件即可完成下载转格式的操作

内容的提问来源于stack exchange,提问作者Harshal Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:06:05