flu-cli 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/package.json +2 -3
- package/release.sh +83 -9
package/CHANGELOG.md
ADDED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flu-cli",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"description": "Flutter MVVM 脚手架工具
|
|
3
|
+
"version": "2.0.3",
|
|
4
|
+
"description": "Flutter MVVM 脚手架工具",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
"tag": "latest"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
|
-
"test": "echo \"Error: no test specified\" && exit 1",
|
|
15
14
|
"start": "node ./index.js",
|
|
16
15
|
"dev": "NODE_ENV=development node ./index.js --",
|
|
17
16
|
"prod": "NODE_ENV=production node ./index.js",
|
package/release.sh
CHANGED
|
@@ -20,6 +20,16 @@ if [ ! -f "package.json" ]; then
|
|
|
20
20
|
exit 1
|
|
21
21
|
fi
|
|
22
22
|
|
|
23
|
+
# 检查当前分支
|
|
24
|
+
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
25
|
+
echo -e "当前分支: ${BLUE}${CURRENT_BRANCH}${NC}"
|
|
26
|
+
|
|
27
|
+
if [ "$CURRENT_BRANCH" != "main" ]; then
|
|
28
|
+
echo -e "${YELLOW}⚠️ 警告: 当前不在 main 分支${NC}"
|
|
29
|
+
echo -e "${YELLOW}非 main 分支只能打包测试,不能发布到 NPM${NC}"
|
|
30
|
+
echo ""
|
|
31
|
+
fi
|
|
32
|
+
|
|
23
33
|
# 获取当前版本
|
|
24
34
|
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
25
35
|
echo -e "当前版本: ${GREEN}v${CURRENT_VERSION}${NC}"
|
|
@@ -31,7 +41,7 @@ echo " 1) patch (bug 修复, 1.0.0 -> 1.0.1)"
|
|
|
31
41
|
echo " 2) minor (新功能, 1.0.0 -> 1.1.0)"
|
|
32
42
|
echo " 3) major (重大变更, 1.0.0 -> 2.0.0)"
|
|
33
43
|
echo " 4) 跳过版本更新"
|
|
34
|
-
read -p "选择 [1-4]: " version_choice
|
|
44
|
+
read -r -p "选择 [1-4]: " version_choice
|
|
35
45
|
|
|
36
46
|
case $version_choice in
|
|
37
47
|
1) VERSION_TYPE="patch" ;;
|
|
@@ -48,7 +58,7 @@ esac
|
|
|
48
58
|
if [ -n "$VERSION_TYPE" ]; then
|
|
49
59
|
echo ""
|
|
50
60
|
echo -e "${YELLOW}更新版本号...${NC}"
|
|
51
|
-
npm version $VERSION_TYPE --no-git-tag-version
|
|
61
|
+
npm version "$VERSION_TYPE" --no-git-tag-version
|
|
52
62
|
NEW_VERSION=$(node -p "require('./package.json').version")
|
|
53
63
|
echo -e "新版本: ${GREEN}v${NEW_VERSION}${NC}"
|
|
54
64
|
else
|
|
@@ -60,10 +70,73 @@ echo ""
|
|
|
60
70
|
echo -e "${YELLOW}运行测试...${NC}"
|
|
61
71
|
npm test || echo -e "${YELLOW}警告: 测试未通过或未配置${NC}"
|
|
62
72
|
|
|
63
|
-
#
|
|
73
|
+
# 更新 CHANGELOG
|
|
74
|
+
if [ -n "$VERSION_TYPE" ]; then
|
|
75
|
+
echo ""
|
|
76
|
+
echo -e "${YELLOW}更新 CHANGELOG.md...${NC}"
|
|
77
|
+
echo -e "${BLUE}请输入本次更新的主要内容(多条请用分号分隔,留空跳过):${NC}"
|
|
78
|
+
read -r -p "更新内容: " changelog_content
|
|
79
|
+
|
|
80
|
+
if [ -n "$changelog_content" ]; then
|
|
81
|
+
# 获取当前日期
|
|
82
|
+
RELEASE_DATE=$(date +"%Y-%m-%d")
|
|
83
|
+
|
|
84
|
+
# 准备新版本的 CHANGELOG 条目
|
|
85
|
+
NEW_ENTRY="## [${NEW_VERSION}] - ${RELEASE_DATE}\n\n### 更新内容\n"
|
|
86
|
+
|
|
87
|
+
# 将分号分隔的内容转换为列表
|
|
88
|
+
IFS=';' read -ra CHANGES <<< "$changelog_content"
|
|
89
|
+
for change in "${CHANGES[@]}"; do
|
|
90
|
+
# 去除前后空格
|
|
91
|
+
change=$(echo "$change" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
|
|
92
|
+
if [ -n "$change" ]; then
|
|
93
|
+
NEW_ENTRY+="- $change\n"
|
|
94
|
+
fi
|
|
95
|
+
done
|
|
96
|
+
NEW_ENTRY+="\n"
|
|
97
|
+
|
|
98
|
+
# 创建临时文件
|
|
99
|
+
TEMP_FILE=$(mktemp)
|
|
100
|
+
|
|
101
|
+
# 在 CHANGELOG.md 中插入新条目(在第一个 ## 之前)
|
|
102
|
+
if [ -f "CHANGELOG.md" ]; then
|
|
103
|
+
awk -v entry="$NEW_ENTRY" '
|
|
104
|
+
/^## / && !inserted {
|
|
105
|
+
print entry
|
|
106
|
+
inserted=1
|
|
107
|
+
}
|
|
108
|
+
{print}
|
|
109
|
+
' CHANGELOG.md > "$TEMP_FILE"
|
|
110
|
+
mv "$TEMP_FILE" CHANGELOG.md
|
|
111
|
+
echo -e "${GREEN}✓ CHANGELOG.md 已更新${NC}"
|
|
112
|
+
else
|
|
113
|
+
echo -e "${YELLOW}警告: CHANGELOG.md 不存在,跳过更新${NC}"
|
|
114
|
+
fi
|
|
115
|
+
else
|
|
116
|
+
echo -e "${YELLOW}跳过 CHANGELOG 更新${NC}"
|
|
117
|
+
fi
|
|
118
|
+
fi
|
|
119
|
+
|
|
120
|
+
# 询问是否发布到 NPM
|
|
64
121
|
echo ""
|
|
122
|
+
if [ "$CURRENT_BRANCH" != "main" ]; then
|
|
123
|
+
echo -e "${RED}===========================================${NC}"
|
|
124
|
+
echo -e "${RED}❌ 错误: 当前分支为 ${CURRENT_BRANCH}${NC}"
|
|
125
|
+
echo -e "${RED}只有 main 分支可以发布到 NPM${NC}"
|
|
126
|
+
echo -e "${RED}===========================================${NC}"
|
|
127
|
+
echo ""
|
|
128
|
+
echo -e "${YELLOW}如需发布,请切换到 main 分支:${NC}"
|
|
129
|
+
echo " git checkout main"
|
|
130
|
+
echo " git merge ${CURRENT_BRANCH}"
|
|
131
|
+
echo " ./release.sh"
|
|
132
|
+
echo ""
|
|
133
|
+
echo -e "${GREEN}✓ 当前分支已完成打包测试准备${NC}"
|
|
134
|
+
exit 0
|
|
135
|
+
fi
|
|
136
|
+
|
|
137
|
+
# 确认发布
|
|
65
138
|
echo -e "${YELLOW}准备发布 v${NEW_VERSION} 到 NPM${NC}"
|
|
66
|
-
read -p "是否继续? (y/n): " confirm
|
|
139
|
+
read -r -p "是否继续? (y/n): " confirm
|
|
67
140
|
|
|
68
141
|
if [ "$confirm" != "y" ]; then
|
|
69
142
|
echo -e "${RED}发布已取消${NC}"
|
|
@@ -82,15 +155,15 @@ if [ -n "$VERSION_TYPE" ]; then
|
|
|
82
155
|
|
|
83
156
|
cd ../..
|
|
84
157
|
git add .
|
|
85
|
-
git commit -m "chore: release v${NEW_VERSION}"
|
|
86
|
-
git tag "v${NEW_VERSION}"
|
|
158
|
+
git commit -m "chore(cli): release v${NEW_VERSION}"
|
|
159
|
+
git tag "cli-v${NEW_VERSION}"
|
|
87
160
|
|
|
88
161
|
echo -e "${GREEN}✓ 代码已提交并打标签${NC}"
|
|
89
162
|
|
|
90
|
-
read -p "是否推送到远程仓库? (y/n): " push_confirm
|
|
163
|
+
read -r -p "是否推送到远程仓库? (y/n): " push_confirm
|
|
91
164
|
if [ "$push_confirm" = "y" ]; then
|
|
92
165
|
git push origin main
|
|
93
|
-
git push origin "v${NEW_VERSION}"
|
|
166
|
+
git push origin "cli-v${NEW_VERSION}"
|
|
94
167
|
echo -e "${GREEN}✓ 已推送到远程仓库${NC}"
|
|
95
168
|
fi
|
|
96
169
|
fi
|
|
@@ -98,7 +171,8 @@ fi
|
|
|
98
171
|
echo ""
|
|
99
172
|
echo -e "${GREEN}===================="
|
|
100
173
|
echo "✅ 发布完成!"
|
|
101
|
-
echo "
|
|
174
|
+
echo "====================${NC}"
|
|
175
|
+
|
|
102
176
|
echo ""
|
|
103
177
|
echo "下一步:"
|
|
104
178
|
echo " 1. 部署文档: cd ../../docs && ./deploy-docs.sh"
|