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

Bun对接Azure DevOps Artifacts包注册表认证报错解决方法

Bun对接Azure DevOps Artifacts触发段错误的解决与正确认证配置

你遇到的SegmentationFault at 0是Bun 1.0.x早期版本解析bunfig.toml中内嵌认证信息的scope配置时的已知内存解析bug,和认证逻辑本身无关,按以下步骤配置即可正常使用:

前置操作

首先执行bun upgrade升级到最新稳定版Bun,从根源修复toml内嵌认证字段触发的段错误问题。

正确认证配置方案

二选一即可,优先推荐第一种,兼容性最好:

方案1:复用npmrc认证配置(推荐)

Bun原生兼容npm的.npmrc认证规则,不需要在bunfig.toml中写任何凭据信息,避免触发解析bug:

  • 提前准备Azure DevOps PAT,确保PAT已勾选Packaging 读取和写入权限,不要手动对PAT做Base64编码,Bun会自动处理编码逻辑,手动编码反而会导致401认证失败。
  • 在项目根目录或用户根目录编辑.npmrc文件,写入以下配置:
    @company:registry=https://company.pkgs.visualstudio.com/_packaging/Web/npm/registry/
    //company.pkgs.visualstudio.com/_packaging/Web/npm/registry/:username=company
    //company.pkgs.visualstudio.com/_packaging/Web/npm/registry/:_password=你生成的原始PAT字符串
    //company.pkgs.visualstudio.com/_packaging/Web/npm/registry/:email=npm@company.com
    //company.pkgs.visualstudio.com/_packaging/Web/npm/registry/:always-auth=true
    
  • 项目下的bunfig.toml仅保留scope的源地址配置即可,移除内嵌的username、password字段:
    [install.scopes]
    "@company" = "https://company.pkgs.visualstudio.com/_packaging/Web/npm/registry/"
    

方案2:通过环境变量传入认证信息

完全不在配置文件中存储凭据,适合CI/CD场景:

  • 保持bunfig.toml中仅配置scope源地址,和方案1中的bunfig.toml配置一致,不要写账号密码字段。
  • 执行bun相关操作前,注入对应scope的认证环境变量:
    # Linux/macOS
    export BUN_INSTALL_SCOPES_COMPANY_TOKEN=你的Azure DevOps PAT
    # Windows PowerShell
    $env:BUN_INSTALL_SCOPES_COMPANY_TOKEN="你的Azure DevOps PAT"
    

验证配置

配置完成后执行bun install @company/<你的组织下已存在的测试包名>,无段错误、无401/403报错即配置生效。

注意:Azure DevOps的npm注册表地址末尾必须带斜杠,否则会出现302重定向导致的认证异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:06:22