flu-cli 2.0.1 → 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 ADDED
@@ -0,0 +1,14 @@
1
+ # 更新日志 (Change Log)
2
+
3
+ 本项目的所有主要更改都将记录在此文件中。
4
+
5
+ ## [2.0.3] - 2025-12-12
6
+
7
+ ### 更新内容
8
+ - 新add 支持本地仓库
9
+
10
+
11
+ ## [未发布]
12
+
13
+ ### 待更新
14
+ - 下次发布时自动生成
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 🚀 **活跃开发中** - Flutter MVVM 脚手架工具
4
4
 
5
- > 💡 **推荐**: 使用 VSCode 开发?试试我们的 [VSCode 插件](https://marketplace.visualstudio.com/items?itemName=flu-cli.flu-cli-vscode),支持右键生成代码,体验更丝滑!
5
+ > 💡 **推荐**: 使用 VSCode 开发?试试我们的 [VSCode 插件](https://marketplace.visualstudio.com/items?itemName=huoye-studio.flu-cli-vscode),支持右键生成代码,体验更丝滑!
6
6
 
7
7
  ## ✨ 特性
8
8
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "flu-cli",
3
- "version": "2.0.1",
4
- "description": "Flutter MVVM 脚手架工具 - V2",
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 "===================="${NC}
174
+ echo "====================${NC}"
175
+
102
176
  echo ""
103
177
  echo "下一步:"
104
178
  echo " 1. 部署文档: cd ../../docs && ./deploy-docs.sh"