Skip to content

Commit 006227a

Browse files
chenJJ-88claude
andcommitted
feat: add release script, keep package name as react-cascading-input
Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 5369eab commit 006227a

2 files changed

Lines changed: 70 additions & 0 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"format": "biome format --write .",
3131
"format:check": "biome format .",
3232
"typecheck": "tsc --noEmit",
33+
"release": "bash scripts/publish.sh",
3334
"prepare": "husky"
3435
},
3536
"peerDependencies": {

scripts/publish.sh

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
# 确保在项目根目录
5+
cd "$(dirname "$0")/.."
6+
7+
# 获取当前版本
8+
CURRENT_VERSION=$(node -p "require('./package.json').version")
9+
10+
echo "📦 当前版本: $CURRENT_VERSION"
11+
echo ""
12+
echo "选择版本更新类型:"
13+
echo " patch - 修复 bug (z+1)"
14+
echo " minor - 新功能,向后兼容 (y+1)"
15+
echo " major - 破坏性变更 (x+1)"
16+
echo " custom - 自定义版本号"
17+
echo ""
18+
19+
read -r BUMP_TYPE
20+
21+
case "$BUMP_TYPE" in
22+
patch)
23+
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
24+
NEW_VERSION="$MAJOR.$MINOR.$((PATCH + 1))"
25+
;;
26+
minor)
27+
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
28+
NEW_VERSION="$MAJOR.$((MINOR + 1)).0"
29+
;;
30+
major)
31+
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
32+
NEW_VERSION="$((MAJOR + 1)).0.0"
33+
;;
34+
custom)
35+
read -r -p "输入新版本号: " NEW_VERSION
36+
;;
37+
*)
38+
echo "❌ 无效选择,退出"
39+
exit 1
40+
;;
41+
esac
42+
43+
echo ""
44+
echo "🚀 将发布: react-cascading-input@$NEW_VERSION"
45+
read -r -p "确认? (y/N) " CONFIRM
46+
47+
if [[ "$CONFIRM" != "y" && "$CONFIRM" != "Y" ]]; then
48+
echo "已取消"
49+
exit 0
50+
fi
51+
52+
# 更新 package.json 版本
53+
node -e "const fs=require('fs');const p=JSON.parse(fs.readFileSync('package.json','utf8'));p.version='$NEW_VERSION';fs.writeFileSync('package.json',JSON.stringify(p,null,4)+'\n');"
54+
55+
echo "✅ 版本已更新到 $NEW_VERSION"
56+
57+
# 构建
58+
echo "🔨 构建中..."
59+
source ~/.nvm/nvm.sh && nvm use 22
60+
pnpm build
61+
62+
# 发布(会弹出浏览器指纹验证)
63+
echo "📤 发布中..."
64+
npm publish --access public
65+
66+
echo ""
67+
echo "🎉 发布成功! react-cascading-input@$NEW_VERSION"
68+
echo ""
69+
echo "💡 记得提交代码: git add -A && git commit -m 'release: v$NEW_VERSION' && git push"

0 commit comments

Comments
 (0)