159 lines
5.3 KiB
JavaScript
159 lines
5.3 KiB
JavaScript
// 二级菜单 - 项目类型
|
||
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 Router(React项目)" },
|
||
{ value: "vue-router", label: "Vue Router(Vue项目)" },
|
||
],
|
||
default: "none"
|
||
},
|
||
{
|
||
name: "状态管理",
|
||
type: "select",
|
||
message: "选择状态管理方案",
|
||
options: [
|
||
{ value: "none", label: "不需要状态管理" },
|
||
{ value: "zustand", label: "Zustand(轻量级,React推荐)" },
|
||
{ value: "pinia", label: "Pinia(Vue官方推荐)" },
|
||
{ 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: "ofetch(Nuxt团队出品)" },
|
||
],
|
||
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 UI(Vue3原生)" },
|
||
{ 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 Components(CSS-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: "VueUse(Vue组合式工具)" },
|
||
{ value: "ahooks", label: "ahooks(React Hooks库)" },
|
||
],
|
||
default: []
|
||
},
|
||
{
|
||
name: "表单验证",
|
||
type: "select",
|
||
message: "选择表单验证方案",
|
||
options: [
|
||
{ value: "none", label: "不需要表单验证" },
|
||
{ value: "zod", label: "Zod(TypeScript优先)" },
|
||
{ value: "yup", label: "Yup(声明式验证)" },
|
||
{ value: "vee-validate", label: "VeeValidate(Vue专用)" },
|
||
{ 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 I18n(Vue专用)" },
|
||
],
|
||
default: "none"
|
||
},
|
||
{
|
||
name: "代码规范",
|
||
type: "multiselect",
|
||
message: "选择代码规范工具",
|
||
options: [
|
||
{ value: "eslint", label: "ESLint(代码检查)" },
|
||
{ value: "prettier", label: "Prettier(代码格式化)" },
|
||
{ value: "husky", label: "Husky(Git 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: []
|
||
}
|
||
];
|