建立两个流水线workflows:npm publish,npm 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
注意:有个模板,
build跟publish分成两个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}}
最后
更多的配置查看文档即可,可以手动点击发布,也可以配置自动触发