使用github-actions发布npm包

建立两个流水线workflows:npm publishnpm unpublish

npm token

首先,登录npmjs后需要在上面Access Token新增Token,选择Classic Token可以无限使用,没有过期时间,type: Publish就可以了

注意 :这里新增完及时复制,刷新页面后就永远看不到了,只能继续新增了

仓库Actionstab页 仓库设置页

  • Secrets: 这里我配置的是组织下都可以用的Organization secrets,在配置文件里面的使用方式如${{secrets.NPM_TOKEN}},注意这个不会打印出来内容,要打印出来的需要使用变量

如果是单个仓库,可以配置Repository secrets

  • Variables: 配置npm unpublish的版本号,会打印出来内容

npm publish

新建配置文件,只要输入名字就可以了,这里可以输入npm-publish

注意:有个模板,buildpublish分成两个job,会导致最后publish的时候没有上一步的产物,所以这里要放在同一个job

可以填入以下内容 .github/workflows/npm-publish.yml

yaml 复制代码
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages

name: npm-publish

on:
  workflow_dispatch:

jobs:
  publish-npm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
          registry-url: https://registry.npmjs.org/
      - run: npm install && npm build
      - run: npm ci
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}

npm unpublish

新建配置文件,只要输入名字就可以了,这里可以输入npm-unpublish npm unpublish 的版本使用变量NPM_UNPUBLISH_VER动态设置,同时job里的name也会引用这个变量,这样在外面就可以看到版本号了 可以填入以下内容 .github/workflows/npm-unpublish.yml

yaml 复制代码
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages

name: npm-unpublish

on:
  workflow_dispatch:

jobs:
  unpublish:
    name: unpublish @${{ vars.NPM_UNPUBLISH_VER }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
          registry-url: https://registry.npmjs.org/
      - run: npm unpublish @zr-lib/dev-torun@${{ vars.NPM_UNPUBLISH_VER }}
        env:
          NODE_AUTH_TOKEN: ${{secrets.npm_token}}

最后

更多的配置查看文档即可,可以手动点击发布,也可以配置自动触发

相关推荐
其实防守也摸鱼2 小时前
教育信息技术应用创新---基础软件信息赛
运维·服务器·数据库·github·copilot
0xR3lativ1ty5 小时前
AI本地部署工具火热趋势
github
LlmCraft|大模型工程实践6 小时前
14. CI/CD 流水线中集成 Docker:GitHub Actions 自动构建部署
ci/cd·docker·github
hulihutu447 小时前
拒绝延期、bug、货不对板:2026 管理系统定制开发落地保障手册
github·bug·鸿蒙系统·数据库管理员
隔窗听雨眠7 小时前
活动中台系统慢SQL治理实践:从监控告警到性能优化的全链路方法论
sql·性能优化·github
m4Rk_7 小时前
【论文阅读】Agent 记忆机制(60):MemInsight——让 LLM 自动为历史记忆生成语义索引
论文阅读·人工智能·学习·开源·github
小弥儿12 小时前
开源 VoiceStudio,声音克隆|配音|有声书一站式本地完成
学习·开源·github
问天_观心21 小时前
大模型微调学习(一)
开发语言·人工智能·学习·语言模型·github
峰向AI21 小时前
SRT 白板动画:让字幕「画」出故事
github
阿里嘎多学长21 小时前
2026-09-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管