Files
yinx-cli/lib/scaffold/config.js
2025-12-20 14:13:59 +08:00

159 lines
5.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 二级菜单 - 项目类型
export const projectTypes = [
{ name: "前端", desc: "React/Vue项目" },
{ name: "后端", desc: "Node.js服务端" },
{ name: "全栈", desc: "前后端一体化" },
];
// 三级菜单 - 具体框架
export const frameworks = {
前端: [
{ name: "React", desc: "Vite + React", value: "react-vite" },
{ name: "Vue", desc: "Vite + Vue", value: "vue-vite" },
],
后端: [
{ name: "Bun", desc: "Bun运行时", value: "bun" },
{ name: "NestJS", desc: "企业级框架", value: "nestjs" },
{ name: "Express", desc: "Express Generator", value: "express" },
{ name: "Koa", desc: "Koa Generator", value: "koa" },
{ name: "Egg", desc: "阿里Egg.js", value: "egg" },
{ name: "Midway", desc: "阿里Midway", value: "midway" },
{ name: "Fastify", desc: "高性能框架", value: "fastify" },
{ name: "AdonisJS", desc: "全功能MVC", value: "adonisjs" },
],
全栈: [
{ name: "Next.js", desc: "React全栈框架", value: "nextjs" },
{ name: "Nuxt", desc: "Vue全栈框架", value: "nuxt" },
],
};
// 前端组件配置步骤
export const frontendSteps = [
{
name: "路由",
type: "select",
message: "选择路由方案",
options: [
{ value: "none", label: "不需要路由" },
{ value: "react-router", label: "React RouterReact项目" },
{ value: "vue-router", label: "Vue RouterVue项目" },
],
default: "none"
},
{
name: "状态管理",
type: "select",
message: "选择状态管理方案",
options: [
{ value: "none", label: "不需要状态管理" },
{ value: "zustand", label: "Zustand轻量级React推荐" },
{ value: "pinia", label: "PiniaVue官方推荐" },
{ value: "redux", label: "Redux Toolkit大型项目" },
{ value: "mobx", label: "MobX响应式状态管理" },
],
default: "none"
},
{
name: "HTTP请求",
type: "select",
message: "选择HTTP请求库",
options: [
{ value: "none", label: "不需要HTTP库" },
{ value: "axios", label: "Axios功能全面拦截器支持" },
{ value: "ky", label: "Ky轻量级基于Fetch" },
{ value: "ofetch", label: "ofetchNuxt团队出品" },
],
default: "none"
},
{
name: "UI组件库",
type: "select",
message: "选择UI组件库",
options: [
{ value: "none", label: "不需要UI库" },
{ value: "antd", label: "Ant Design企业级React" },
{ value: "element-plus", label: "Element Plus饿了么Vue" },
{ value: "arco", label: "Arco Design字节跳动" },
{ value: "naive-ui", label: "Naive UIVue3原生" },
{ value: "shadcn", label: "shadcn/ui可定制React" },
],
default: "none"
},
{
name: "CSS方案",
type: "select",
message: "选择CSS方案",
options: [
{ value: "none", label: "原生CSS" },
{ value: "tailwind", label: "Tailwind CSS原子化CSS" },
{ value: "unocss", label: "UnoCSS即时原子化" },
{ value: "sass", label: "Sass/SCSS预处理器" },
{ value: "less", label: "Less预处理器" },
{ value: "styled", label: "Styled ComponentsCSS-in-JS" },
],
default: "none"
},
{
name: "工具库",
type: "multiselect",
message: "选择常用工具库",
options: [
{ value: "lodash", label: "Lodash工具函数库" },
{ value: "dayjs", label: "Day.js日期处理" },
{ value: "iconify", label: "Iconify图标库" },
{ value: "vueuse", label: "VueUseVue组合式工具" },
{ value: "ahooks", label: "ahooksReact Hooks库" },
],
default: []
},
{
name: "表单验证",
type: "select",
message: "选择表单验证方案",
options: [
{ value: "none", label: "不需要表单验证" },
{ value: "zod", label: "ZodTypeScript优先" },
{ value: "yup", label: "Yup声明式验证" },
{ value: "vee-validate", label: "VeeValidateVue专用" },
{ value: "react-hook-form", label: "React Hook Form" },
],
default: "none"
},
{
name: "国际化",
type: "select",
message: "选择国际化方案",
options: [
{ value: "none", label: "不需要国际化" },
{ value: "i18next", label: "i18next通用方案" },
{ value: "vue-i18n", label: "Vue I18nVue专用" },
],
default: "none"
},
{
name: "代码规范",
type: "multiselect",
message: "选择代码规范工具",
options: [
{ value: "eslint", label: "ESLint代码检查" },
{ value: "prettier", label: "Prettier代码格式化" },
{ value: "husky", label: "HuskyGit Hooks" },
{ value: "lint-staged", label: "lint-staged暂存区检查" },
{ value: "commitlint", label: "Commitlint提交信息规范" },
],
default: []
},
{
name: "其他",
type: "multiselect",
message: "选择其他功能",
options: [
{ value: "mock", label: "Mock.js模拟数据" },
{ value: "pwa", label: "PWA支持" },
{ value: "storage", label: "持久化存储封装" },
{ value: "env", label: "环境变量配置" },
],
default: []
}
];