因为过程复杂和老忘记改版本号(╯‵□′)╯︵┻━┻,为简化自己提交开源工具而写的 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