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

使用Semantic Release+GitHub Actions发布npm包仅含package.json问题

解决Semantic Release发布GitHub Packages仅含package.json的问题

检查Semantic Release配置(.releaserc)

确保@semantic-release/npm插件的pkgRoot配置正确指向dist目录,同时dist目录下必须包含完整可用的package.json(可在构建时复制根目录package.json到dist,或调整字段适配发布需求)。示例配置:

{
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    [
      "@semantic-release/npm",
      {
        "pkgRoot": "dist"
      }
    ],
    "@semantic-release/github"
  ]
}

修正dist目录下的package.json

  • 确保dist内的package.json中main字段指向编译后的入口文件,比如"main": "./index.js"(对应dist/index.js),否则安装后无法找到包的执行入口。
  • 确认该package.json的private字段为false,否则Semantic Release会跳过npm发布流程。

调整GitHub Actions工作流(test-publish.yml)

必须在发布步骤前执行构建命令生成dist目录,确保Semantic Release能读取到dist下的完整内容。示例工作流片段:

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20
          registry-url: 'https://npm.pkg.github.com'
          scope: '@your-username' # 替换为你的GitHub用户名/组织名
      - name: Install dependencies
        run: npm ci
      - name: Run tests
        run: npm test
      - name: Build package
        run: npm run build # 此命令需确保生成完整的dist目录
      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          NPM_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: npx semantic-release

验证dist目录结构

构建完成后,dist目录需包含以下内容:

  • 修正后的package.json
  • 编译后的所有JS/类型文件(如index.js、index.d.ts、lib/目录等)
  • 可选:README.md、LICENSE等文档文件(需手动复制或通过构建脚本自动同步到dist)

常见排查点

  • 根目录package.json若设置private: true,需改为false,或确保dist内的package.json覆盖该配置。
  • 确认GitHub Actions的GITHUB_TOKEN拥有packages: write权限(默认工作流权限通常满足,若有问题可在仓库设置中调整)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:20:32