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

升级Angular与Node.js 16后无法发布npm包至GitHub Packages

Angular 14升级后私有库发布仓库地址识别错误问题

问题背景

将Angular 12库升级至Angular 14,同步升级Node.js到16.20.2。库为GitHub私有仓库,构建产物输出到dist/ngx-components目录。旧版本环境下发布正常,升级后发布时出现仓库地址解析错误。

关键配置信息

库根目录package.json的核心配置:

{
  ....
  "repository": {
    "url": "git@github.com:[PRIVATE NAMESPACE]/platform-ui-components.git"
  },
  "publishConfig": {
    "registry":"https://npm.pkg.github.com/"
  }
}

错误日志

发布时触发如下错误:

error command git --no-replace-objects ls-remote ssh://git@github.com/dist/ngx-components.git

系统错误将dist/ngx-components路径拼接为仓库地址,正确地址应为ssh://git@github.com:[PRIVATE NAMESPACE]/platform-ui-components.git。

解决方案

  • 修正dist目录自动生成的package.json
    Angular构建时会在dist/ngx-components下自动生成package.json,其中repository字段可能被错误覆盖。可通过根目录的ng-package.json指定构建后产物的仓库信息,确保与根配置一致:

    {
      "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
      "dest": "./dist/ngx-components",
      "lib": {
        "entryFile": "src/public-api.ts"
      },
      "repository": {
        "url": "git@github.com:[PRIVATE NAMESPACE]/platform-ui-components.git"
      }
    }
    
  • 完善repository字段的完整结构
    在根目录package.json中补充repository的type和directory属性,避免工具解析歧义:

    "repository": {
      "type": "git",
      "url": "git@github.com:[PRIVATE NAMESPACE]/platform-ui-components.git",
      "directory": "projects/ngx-components" // 若库在projects子目录下需指定对应路径
    }
    
  • 规范发布命令执行方式
    确保发布命令的工作目录正确,或直接指定完整的dist路径,避免相对路径解析错误:

    npm publish ./dist/ngx-components --registry=https://npm.pkg.github.com/
    
  • 清理缓存后重新构建
    清除Angular构建缓存与npm缓存,避免旧配置残留影响:

    ng clean
    npm cache clean --force
    npm run build
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 11:46:33