Skip to main content

frontend-project-creator

创建新的前端项目,支持框架和组件库选择。当用户需要从零开始创建前端项目并指定技术栈时使用。此 skill 支持 React 框架设置,提供 MUI、shadcn/ui 或 Bootstrap 组件库选项,包含路由配置和多页面结构。

Informations de source

Dépôt
chaitin/MonkeyCodeOfficialPlugins
Dernière activité de la source
5 février 2026 à 14:07
Langue détectée de SKILL.md
chinois
Étoiles
7
Forks
13

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
frontend-project-creator
description
创建新的前端项目,支持框架和组件库选择。当用户需要从零开始创建前端项目并指定技术栈时使用。此 skill 支持 React 框架设置,提供 MUI、shadcn/ui 或 Bootstrap 组件库选项,包含路由配置和多页面结构。
# 前端项目创建器 ## 概述 通过引导用户选择技术栈来创建新的前端项目。支持 React 框架配合 MUI、shadcn/ui 或 Bootstrap 组件库。所有项目使用 Vite 作为构建工具,并使用 React Router 实现导航。 ## 工作流程 ### 第 1 步:询问组件库选择 询问用户使用哪个组件库: - MUI (Material UI) - shadcn/ui - Bootstrap (推荐) 使用 question 工具进行单选(不要多选)。将 Bootstrap 标记为推荐选项。 ### 第 2 步:创建项目 根据用户选择,创建项目结构: #### React + MUI ```bash npm create vite@latest . -- --template react-ts npm install @mui/material @emotion/react @emotion/styled npm install react-router-dom ``` #### React + shadcn/ui ```bash npm create vite@latest . -- --template react-ts npm install tailwindcss @tailwindcss/vite npm install -D @types/node npm install react-router-dom ``` 将 `src/index.css` 替换为: ```css @import "tailwindcss"; ``` 更新 `tsconfig.json`: ```json { "files": [], "references": [ { "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" } ], "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["./src/*"] } } } ``` 更新 `tsconfig.app.json`(添加到 compilerOptions): ```json { "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["./src/*"] } } } ``` 更新 `vite.config.ts`: ```typescript import path from "path" import tailwindcss from "@tailwindcss/vite" import react from "@vitejs/plugin-react" import { defineConfig } from "vite" export default defineConfig({ plugins: [react(), tailwindcss()], server: { allowedHosts: ['.monkeycode-ai.online'] }, resolve: { alias: { "@": path.resolve(__dirname, "./src"), }, }, }) ``` 初始化 shadcn/ui: ```bash npx shadcn@latest init ``` #### React + Bootstrap ```bash npm create vite@latest . -- --template react-ts npm install react-bootstrap bootstrap npm install react-router-dom ``` ### 第 3 步:配置 Vite(用于 MUI 和 Bootstrap 项目) 在 `vite.config.ts` 中添加: ```typescript import react from "@vitejs/plugin-react" import { defineConfig } from "vite" export default defineConfig({ plugins: [react()], server: { allowedHosts: ['.monkeycode-ai.online'] } }) ``` ### 第 4 步:创建项目结构 创建以下目录结构: ``` src/ ├── pages/ │ ├── Welcome.tsx │ └── Home.tsx ├── components/ │ └── Navbar.tsx ├── App.tsx └── main.tsx ``` ### 第 5 步:创建页面 创建 `src/pages/Welcome.tsx`: ```typescript import { Container } from "react-bootstrap"; export default function Welcome() { return ( <Container className="text-center mt-5"> <h1>你好 MonkeyCode</h1> <p>欢迎使用 MonkeyCode 前端项目</p> </Container> ); } ``` 创建 `src/pages/Home.tsx`: ```typescript import { Container } from "react-bootstrap"; export default function Home() { return ( <Container className="text-center mt-5"> <h1>首页</h1> <p>这是首页内容</p> </Container> ); } ``` **对于 MUI 项目:** 将 Bootstrap 组件替换为 MUI 等效组件: ```typescript import { Container, Typography } from "@mui/material"; export default function Welcome() { return ( <Container maxWidth="sm" sx={{ mt: 5, textAlign: 'center' }}> <Typography variant="h4" component="h1" gutterBottom> 你好 MonkeyCode </Typography> <Typography variant="body1"> 欢迎使用 MonkeyCode 前端项目 </Typography> </Container> ); } ``` **对于 shadcn/ui 项目:** ```typescript export default function Welcome() { return ( <div className="text-center mt-5"> <h1 className="text-4xl font-bold">你好 MonkeyCode</h1> <p>欢迎使用 MonkeyCode 前端项目</p> </div> ); } ``` ### 第 6 步:创建导航栏组件 创建 `src/components/Navbar.tsx`: ```typescript import { Navbar, Container, Nav } from "react-bootstrap"; import { Link } from "react-router-dom"; export default function Navigation() { return ( <Navbar bg="dark" variant="dark" expand="lg"> <Container> <Navbar.Brand as={Link} to="/"> MonkeyCode </Navbar.Brand> <Navbar.Toggle aria-controls="basic-navbar-nav" /> <Navbar.Collapse id="basic-navbar-nav"> <Nav className="me-auto"> <Nav.Link as={Link} to="/"> 欢迎 </Nav.Link> <Nav.Link as={Link} to="/home"> 首页 </Nav.Link> </Nav> </Navbar.Collapse> </Container> </Navbar> ); } ``` **对于 MUI 项目:** ```typescript import { AppBar, Toolbar, Typography, Button, Box } from "@mui/material"; import { Link, useLocation } from "react-router-dom"; export default function Navigation() { const location = useLocation(); return ( <AppBar position="static"> <Toolbar> <Typography variant="h6" component="div" sx={{ flexGrow: 1 }}> <Link to="/" style={{ color: 'white', textDecoration: 'none' }}> MonkeyCode </Link> </Typography> <Box sx={{ display: 'flex', gap: 2 }}> <Button color="inherit" component={Link} to="/"> 欢迎 </Button> <Button color="inherit" component={Link} to="/home"> 首页 </Button> </Box> </Toolbar> </AppBar> ); } ``` **对于 shadcn/ui 项目:** ```typescript import { Button } from "@/components/ui/button" import { Link, useLocation } from "react-router-dom"; export default function Navigation() { const location = useLocation(); return ( <nav className="border-b bg-white"> <div className="container mx-auto px-4"> <div className="flex h-16 items-center justify-between"> <Link to="/" className="text-xl font-bold"> MonkeyCode </Link> <div className="flex gap-4"> <Button variant={location.pathname === '/' ? 'default' : 'ghost'} asChild> <Link to="/">欢迎</Link> </Button> <Button variant={location.pathname === '/home' ? 'default' : 'ghost'} asChild> <Link to="/home">首页</Link> </Button> </div> </div> </div> </nav> ); } ``` ### 第 7 步:配置 App.tsx 更新 `src/App.tsx`: ```typescript import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; import Navigation from "./components/Navbar"; import Welcome from "./pages/Welcome"; import Home from "./pages/Home"; function App() { return ( <Router> <Navigation /> <Routes> <Route path="/" element={<Welcome />} /> <Route path="/home" element={<Home />} /> </Routes> </Router> ); } export default App; ``` ### 第 8 步:配置 main.tsx 更新 `src/main.tsx`: ```typescript import React from "react"; import ReactDOM from "react-dom/client"; import App from "./App.tsx"; import "./index.css"; ReactDOM.createRoot(document.getElementById("root")!).render( <React.StrictMode> <App /> </React.StrictMode>, ); ``` **仅对于 React + Bootstrap 项目:** 在 `main.tsx` 顶部添加 Bootstrap CSS 导入: ```typescript import 'bootstrap/dist/css/bootstrap.min.css'; ``` ### 第 9 步:安装依赖 ```bash npm install ``` ### 第 10 步:启动开发服务器 ```bash npm run dev ``` ## 注意事项 - 所有项目使用 React + TypeScript + Vite - 默认安装 React Router 用于导航 - Bootstrap 推荐作为默认组件库 - 所有项目包含"你好 MonkeyCode"欢迎页面 - 项目包含响应式导航栏 - 遵循 Vite 的项目结构约定 - 确保在启动开发服务器前完成所有配置 - shadcn/ui 需要 Tailwind CSS 和路径别名配置 - shadcn/ui init 命令会提示进行额外配置 - MUI 使用 Emotion 作为默认样式引擎 - React Bootstrap 需要导入 Bootstrap CSS 文件
Voir sur GitHub