乐趣区

自动化执行npm-publishgit-commitgit-tagghpages全流程的shell

因为过程复杂和老忘记改版本号(╯‵□′)╯︵┻━┻,为简化自己提交开源工具而写的 shell,记录一下。

用 alias 写在了 .zshrc 里,直接用 command [version] [commit/tag message] [subtreeDir]使用,[version][message] 必须。

其中包含了自动修改版本号、git 提交操作、tag 操作、publish、提交 gh-pages 的 subtree。

我的 drag-block 目前在用,前期准备工作如下:

  • 在 github 上建库
  • 使用 webpack 打包,设置 dev 和 prod 环境
  • build 会把代码以及示例打包,分别放在 lib/ 和 example/ 下
  • 需要一个 npm 账号在登录状态
  • 配置 npm publish 之前的 ignore、files 等
  • 建立 gh-pages 分支,并使用 subtree 将 example/ 提交到该分支

会得到:

  • 一个 github 仓库
  • github releases,可以用代码包的方式下载
  • 可以直接在 npm install 的工具
  • 一个 github page,内容是你做的示例页面

具体的可以从 drag-block 这里看。

#!/bin/sh                                                                                                                                                                                
if [! -n "$3"];then
    subtreeDir="example/"
else
    subtreeDir=$3
fi

if [! -n "$1"];then
    echo '请输入版本号';
else
    sed -i '''s#\("version":"\).*#\1'"$1"'",#g' package.json # 修改 package.json 中的 version
    npm run build
    git add .
    git commit -m "$2"
    git tag $1 -m "$2"
    git push
    git push --tags
    npm publish
    git subtree push --prefix=${subtreeDir} origin gh-pages  # 使用 subtree 的方式提交我的 example/ 目录为 gh-pages 分支内容,用以 github pages。fi
退出移动版