@agile-team/robot-cli 1.1.5 → 1.1.7
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/lib/create.js +40 -44
- package/package.json +1 -1
package/lib/create.js
CHANGED
|
@@ -144,34 +144,34 @@ async function selectTemplateMethod() {
|
|
|
144
144
|
message: "模板选择方式:",
|
|
145
145
|
choices: [
|
|
146
146
|
{
|
|
147
|
-
name: `${chalk.
|
|
147
|
+
name: `${chalk.white('●')} ${chalk.bold('推荐模板')} ${chalk.dim('(常用模板快速选择) - 基于团队使用频率推荐的热门模板')}`,
|
|
148
148
|
value: "recommended"
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
name: chalk.dim("─".repeat(70)),
|
|
152
152
|
value: "sep1",
|
|
153
|
-
disabled:
|
|
153
|
+
disabled: "─"
|
|
154
154
|
},
|
|
155
155
|
{
|
|
156
|
-
name: `${chalk.
|
|
156
|
+
name: `${chalk.white('●')} ${chalk.bold('分类模板')} ${chalk.dim('(按项目类型分类选择) - 前端、后端、移动端、桌面端分类浏览')}`,
|
|
157
157
|
value: "category"
|
|
158
158
|
},
|
|
159
159
|
{
|
|
160
160
|
name: chalk.dim("─".repeat(70)),
|
|
161
161
|
value: "sep2",
|
|
162
|
-
disabled:
|
|
162
|
+
disabled: "─"
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
|
-
name: `${chalk.
|
|
165
|
+
name: `${chalk.white('●')} ${chalk.bold('搜索模板')} ${chalk.dim('(关键词搜索) - 通过技术栈、功能特性等关键词快速查找')}`,
|
|
166
166
|
value: "search"
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
name: chalk.dim("─".repeat(70)),
|
|
170
170
|
value: "sep3",
|
|
171
|
-
disabled:
|
|
171
|
+
disabled: "─"
|
|
172
172
|
},
|
|
173
173
|
{
|
|
174
|
-
name: `${chalk.
|
|
174
|
+
name: `${chalk.white('●')} ${chalk.bold('全部模板')} ${chalk.dim('(查看所有可用模板) - 按分类展示所有可用的项目模板')}`,
|
|
175
175
|
value: "all"
|
|
176
176
|
},
|
|
177
177
|
],
|
|
@@ -213,7 +213,7 @@ async function selectFromRecommended() {
|
|
|
213
213
|
const choices = Object.entries(recommended).map(([key, template]) => {
|
|
214
214
|
// 构建特性标签
|
|
215
215
|
const featureTags = template.features.slice(0, 3).map(f =>
|
|
216
|
-
chalk.
|
|
216
|
+
chalk.dim(`[${f}]`)
|
|
217
217
|
).join(' ');
|
|
218
218
|
|
|
219
219
|
// 版本标签 - 只保留方括号内的版本
|
|
@@ -222,16 +222,27 @@ async function selectFromRecommended() {
|
|
|
222
222
|
chalk.yellow('[精简版]');
|
|
223
223
|
|
|
224
224
|
return {
|
|
225
|
-
name: `${chalk.bold.white(template.name.replace(/\s*(完整版|精简版)\s*$/, ''))} ${versionTag}
|
|
226
|
-
${chalk.dim(template.
|
|
227
|
-
${featureTags}${template.features.length > 3 ? chalk.dim(` +${template.features.length - 3}more`) : ''}
|
|
228
|
-
${chalk.dim('━'.repeat(60))}`,
|
|
225
|
+
name: `${chalk.bold.white(template.name.replace(/\s*(完整版|精简版)\s*$/, ''))} ${versionTag} - ${chalk.dim(template.description)}
|
|
226
|
+
${chalk.dim(featureTags)}${template.features.length > 3 ? chalk.dim(` +${template.features.length - 3}more`) : ''}`,
|
|
229
227
|
value: { key, ...template },
|
|
230
228
|
short: template.name,
|
|
231
229
|
};
|
|
232
230
|
});
|
|
233
231
|
|
|
234
|
-
|
|
232
|
+
// 为每个推荐模板添加分隔符
|
|
233
|
+
const choicesWithSeparators = [];
|
|
234
|
+
choices.forEach((choice, index) => {
|
|
235
|
+
choicesWithSeparators.push(choice);
|
|
236
|
+
if (index < choices.length - 1) {
|
|
237
|
+
choicesWithSeparators.push({
|
|
238
|
+
name: chalk.dim("─".repeat(70)),
|
|
239
|
+
value: `sep_${index}`,
|
|
240
|
+
disabled: "─"
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
choicesWithSeparators.push({
|
|
235
246
|
name: chalk.dim("⬅️ 返回选择其他方式"),
|
|
236
247
|
value: "back",
|
|
237
248
|
});
|
|
@@ -241,8 +252,8 @@ async function selectFromRecommended() {
|
|
|
241
252
|
type: "list",
|
|
242
253
|
name: "selectedTemplate",
|
|
243
254
|
message: "选择推荐模板:",
|
|
244
|
-
choices,
|
|
245
|
-
pageSize:
|
|
255
|
+
choices: choicesWithSeparators,
|
|
256
|
+
pageSize: 15,
|
|
246
257
|
loop: false
|
|
247
258
|
},
|
|
248
259
|
]);
|
|
@@ -533,7 +544,7 @@ async function selectBySearch() {
|
|
|
533
544
|
{
|
|
534
545
|
name: chalk.dim("━".repeat(70)),
|
|
535
546
|
value: "separator",
|
|
536
|
-
disabled:
|
|
547
|
+
disabled: "━",
|
|
537
548
|
},
|
|
538
549
|
{ name: "🔍 重新搜索", value: "search_again" },
|
|
539
550
|
{ name: "⬅️ 返回模板选择方式", value: "back_to_mode" }
|
|
@@ -578,7 +589,7 @@ async function selectFromAll() {
|
|
|
578
589
|
categorizedChoices.push({
|
|
579
590
|
name: chalk.yellow.bold("🎨 前端项目"),
|
|
580
591
|
value: "frontend_header",
|
|
581
|
-
disabled:
|
|
592
|
+
disabled: "🎨"
|
|
582
593
|
});
|
|
583
594
|
|
|
584
595
|
Object.entries(allTemplates)
|
|
@@ -590,7 +601,7 @@ async function selectFromAll() {
|
|
|
590
601
|
chalk.green('[完整版]') : chalk.yellow('[精简版]');
|
|
591
602
|
|
|
592
603
|
categorizedChoices.push({
|
|
593
|
-
name: ` ● ${chalk.bold(template.name.replace(/\s*(完整版|精简版)\s*$/, ''))} ${versionTag} - ${chalk.dim(template.description)}
|
|
604
|
+
name: ` ${chalk.white('●')} ${chalk.bold(template.name.replace(/\s*(完整版|精简版)\s*$/, ''))} ${versionTag} - ${chalk.dim(template.description)}
|
|
594
605
|
${chalk.dim(`技术栈: ${techStack} • 命令: robot create my-app -t ${key}`)}`,
|
|
595
606
|
value: { key, ...template },
|
|
596
607
|
short: template.name
|
|
@@ -600,20 +611,15 @@ async function selectFromAll() {
|
|
|
600
611
|
categorizedChoices.push({
|
|
601
612
|
name: chalk.dim(" " + "─".repeat(66)),
|
|
602
613
|
value: `sep_${key}`,
|
|
603
|
-
disabled:
|
|
614
|
+
disabled: "─"
|
|
604
615
|
});
|
|
605
616
|
});
|
|
606
617
|
|
|
607
618
|
// 移动端模板
|
|
608
|
-
categorizedChoices.push({
|
|
609
|
-
name: "",
|
|
610
|
-
value: "spacer1",
|
|
611
|
-
disabled: true
|
|
612
|
-
});
|
|
613
619
|
categorizedChoices.push({
|
|
614
620
|
name: chalk.yellow.bold("📱 移动端项目"),
|
|
615
621
|
value: "mobile_header",
|
|
616
|
-
disabled:
|
|
622
|
+
disabled: "📱"
|
|
617
623
|
});
|
|
618
624
|
|
|
619
625
|
Object.entries(allTemplates)
|
|
@@ -623,7 +629,7 @@ async function selectFromAll() {
|
|
|
623
629
|
chalk.green('[完整版]') : chalk.yellow('[精简版]');
|
|
624
630
|
|
|
625
631
|
categorizedChoices.push({
|
|
626
|
-
name: ` ● ${chalk.bold(template.name.replace(/\s*(完整版|精简版)\s*$/, ''))} ${versionTag} - ${chalk.dim(template.description)}
|
|
632
|
+
name: ` ${chalk.white('●')} ${chalk.bold(template.name.replace(/\s*(完整版|精简版)\s*$/, ''))} ${versionTag} - ${chalk.dim(template.description)}
|
|
627
633
|
${chalk.dim(`跨平台: 小程序/H5/App • 命令: robot create my-app -t ${key}`)}`,
|
|
628
634
|
value: { key, ...template },
|
|
629
635
|
short: template.name
|
|
@@ -633,20 +639,15 @@ async function selectFromAll() {
|
|
|
633
639
|
categorizedChoices.push({
|
|
634
640
|
name: chalk.dim(" " + "─".repeat(66)),
|
|
635
641
|
value: `sep_${key}`,
|
|
636
|
-
disabled:
|
|
642
|
+
disabled: "─"
|
|
637
643
|
});
|
|
638
644
|
});
|
|
639
645
|
|
|
640
646
|
// 后端模板
|
|
641
|
-
categorizedChoices.push({
|
|
642
|
-
name: "",
|
|
643
|
-
value: "spacer2",
|
|
644
|
-
disabled: true
|
|
645
|
-
});
|
|
646
647
|
categorizedChoices.push({
|
|
647
648
|
name: chalk.yellow.bold("🚀 后端项目"),
|
|
648
649
|
value: "backend_header",
|
|
649
|
-
disabled:
|
|
650
|
+
disabled: "🚀"
|
|
650
651
|
});
|
|
651
652
|
|
|
652
653
|
Object.entries(allTemplates)
|
|
@@ -657,7 +658,7 @@ async function selectFromAll() {
|
|
|
657
658
|
chalk.green('[完整版]') : chalk.yellow('[精简版]');
|
|
658
659
|
|
|
659
660
|
categorizedChoices.push({
|
|
660
|
-
name: ` ● ${chalk.bold(template.name.replace(/\s*(完整版|精简版)\s*$/, ''))} ${versionTag} - ${chalk.dim(template.description)}
|
|
661
|
+
name: ` ${chalk.white('●')} ${chalk.bold(template.name.replace(/\s*(完整版|精简版)\s*$/, ''))} ${versionTag} - ${chalk.dim(template.description)}
|
|
661
662
|
${chalk.dim(`框架: ${framework} • 命令: robot create my-app -t ${key}`)}`,
|
|
662
663
|
value: { key, ...template },
|
|
663
664
|
short: template.name
|
|
@@ -667,20 +668,15 @@ async function selectFromAll() {
|
|
|
667
668
|
categorizedChoices.push({
|
|
668
669
|
name: chalk.dim(" " + "─".repeat(66)),
|
|
669
670
|
value: `sep_${key}`,
|
|
670
|
-
disabled:
|
|
671
|
+
disabled: "─"
|
|
671
672
|
});
|
|
672
673
|
});
|
|
673
674
|
|
|
674
675
|
// 桌面端模板
|
|
675
|
-
categorizedChoices.push({
|
|
676
|
-
name: "",
|
|
677
|
-
value: "spacer3",
|
|
678
|
-
disabled: true
|
|
679
|
-
});
|
|
680
676
|
categorizedChoices.push({
|
|
681
677
|
name: chalk.yellow.bold("💻 桌面端项目"),
|
|
682
678
|
value: "desktop_header",
|
|
683
|
-
disabled:
|
|
679
|
+
disabled: "💻"
|
|
684
680
|
});
|
|
685
681
|
|
|
686
682
|
Object.entries(allTemplates)
|
|
@@ -691,7 +687,7 @@ async function selectFromAll() {
|
|
|
691
687
|
chalk.green('[完整版]') : chalk.yellow('[精简版]');
|
|
692
688
|
|
|
693
689
|
categorizedChoices.push({
|
|
694
|
-
name: ` ● ${chalk.bold(template.name.replace(/\s*(完整版|精简版)\s*$/, ''))} ${versionTag} - ${chalk.dim(template.description)}
|
|
690
|
+
name: ` ${chalk.white('●')} ${chalk.bold(template.name.replace(/\s*(完整版|精简版)\s*$/, ''))} ${versionTag} - ${chalk.dim(template.description)}
|
|
695
691
|
${chalk.dim(`框架: ${framework} • 命令: robot create my-app -t ${key}`)}`,
|
|
696
692
|
value: { key, ...template },
|
|
697
693
|
short: template.name
|
|
@@ -701,7 +697,7 @@ async function selectFromAll() {
|
|
|
701
697
|
categorizedChoices.push({
|
|
702
698
|
name: chalk.dim(" " + "─".repeat(66)),
|
|
703
699
|
value: `sep_${key}`,
|
|
704
|
-
disabled:
|
|
700
|
+
disabled: "─"
|
|
705
701
|
});
|
|
706
702
|
});
|
|
707
703
|
|
|
@@ -710,7 +706,7 @@ async function selectFromAll() {
|
|
|
710
706
|
{
|
|
711
707
|
name: chalk.dim("━".repeat(70)),
|
|
712
708
|
value: "separator",
|
|
713
|
-
disabled:
|
|
709
|
+
disabled: "━",
|
|
714
710
|
},
|
|
715
711
|
{
|
|
716
712
|
name: chalk.dim("⬅️ 返回模板选择方式"),
|