Tips:本文的自动化模板会自动更新package.json里的版本号,无需手动更新
但是更新版本号需要触发关键词,可以自定义关键词,详细请看phips28/gh-action-bump-version: GitHub Action for automated npm version bump.
因为我使用了XPoet/picx 项目所有加入了Picx关键词,来达到每次上传推送一次
npm 包发布其实很简单
代码语言:javascript复制npm publish
前提是去注册个npm账户
不过有时候推了github,忘记发布npm,
或者发布了npm,却忘记推github,导致了代码数据不同步
为了和github代码实现同步,使用Github Actions
确保npm包在本地能正常发布
实现步骤
注册GitHub账户和新建仓库网上教程很多,为了节省时间就不阐述了
进入到仓库的Action页面
直接点击仓库上方的Actions按钮
创建CI任务
点击“new workflow” 选择Simple workflow
会自动创建yml并进入修改页面
修改yml,编辑工作流
代码语言:javascript复制name: Publish to NPM
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
publish-to-npm:
runs-on: ubuntu-latest
steps:
- name: Checkout release branch code
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Get yarn cache
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache dependencies
uses: actions/cache@v2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: 12
registry-url: https://registry.npmjs.org
- name: 'Automated Version Bump'
uses: 'phips28/gh-action-bump-version@master'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
default: prerelease
rc-wording: 'RELEASE,alpha,PicX'
- name: Publish to NPM
run: npm publish || true
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
注册npm账户
npm | Sign Up (npmjs.com)
按照提示填写信息即可
创建npm token 并加入仓库变量
点击账户头像,跳出菜单后点击Access Tokens
点击Generate New Token
在创建密钥时注意一定要选择Automation一项,否则会提示输入密钥,导致推送失败
当密钥创建完成后会显示,需要注意的是只显示一次
复制密钥,回到仓库设置点击Secrets,然后点击New repository secret
Name填NPM_TOKEN,Value填复制的密钥
这时候Actions会报错,不过没关系,重新运行就行了
推送成功之后你会收到一封来自npm的邮件,说明已经推送成功
用到的相关项目
phips28/gh-action-bump-version: GitHub Action for automated npm version bump.
XPoet/picx: 基于 GitHub API & jsDelivr 开发的具有 CDN 加速功能的图床管理工具。无需下载与安装,网页端在线使用!免费!稳定!便捷!极速!