我厌倦了复制相同的 MERN 样板,于是我构建了一个 CLI
Source: Dev.to
每个全栈开发者都知道的问题
每次开始一个新项目时,前一小时的流程都是一样的:
npm create vite@latest # pick React → set up Tailwind- 创建
server/文件夹 →npm init→ 安装 Express、Mongoose、dotenv、cors - 编写相同的
db.js连接文件 - 从上一个项目复制 CORS 配置
- 在
vite.config.js中设置代理 - 如果需要登录,复制相同的 JWT 认证代码
- 接入 React Router、受保护路由,完成所有配置
等真正开始编写业务功能时,我已经精神疲惫。而且每个项目的脚手架都会因为我每次“改进”而略有不同。
QuickStack – 为你自动完成的 CLI
npx create-quickstack-app my-app就这么简单。你将得到一个可直接运行的全栈 starter。
你将得到的内容
| 类别 | 技术栈 |
|---|---|
| 前端 | React + Vite + Tailwind CSS |
| 后端 | Express.js + Mongoose |
| 认证(可选) | JWT + bcrypt + httpOnly cookies |
| 开发体验 | NPM Workspaces、预配置 Axios、单一 npm run dev 命令 |
版本选择
QuickStack 让你在稳定、经过实战检验的版本和最新发布的版本之间切换:
- Stable → React 18.3、Tailwind v3、React Router v6
- Latest → React 19、Tailwind v4、React Router v7
添加 --auth 参数即可生成认证脚手架。
认证脚手架(使用 --auth 时)
POST /api/user/register– 创建账户POST /api/user/login– 登录,设置 httpOnly JWT CookiePOST /api/user/logout– 清除会话GET /api/user/me– 返回当前用户(受保护)
包含:
- 带表单的登录与注册页面
- 在未登录时重定向到
/login的ProtectedRoute组件 - 带 Axios 拦截器的 Auth 服务
- 已配置好所有路由的 React Router 设置
这不是玩具式的 “TODO‑app” 示例;它正是我在生产环境中实际使用的。
CLI 工作原理
- commander – 参数解析(
--auth、--stable、--latest、--yes) - @inquirer/prompts – 交互式提示
- fs-extra – 复制模板目录
- chalk – 彩色终端输出
QuickStack 并不是通过脆弱的字符串模板生成代码,而是直接复制真实、可运行的项目目录,并根据你的选择进行补丁。仓库中的模板是完整可用的——你可以 cd 进去直接运行。
针对不同版本的调整(React 18 vs 19、Tailwind 3 vs 4)由预设引擎处理,它会在复制基础模板后重写 package.json 依赖和配置文件。
安装与使用
npx create-quickstack-app my-app
cd my-app
npm run dev- 客户端 →
- 服务器端 →
链接
- npm:
- GitHub:
接下来
- TypeScript 模板变体
- 包含 Docker Compose 的脚手架
- PostgreSQL + Prisma 作为数据库选项
- 更多框架选项(例如 Next.js)
如果这能为你的下一个项目节省哪怕 30 分钟,我就算成功了。欢迎提出你想要的功能——随时打开 issue 或留下反馈。如果觉得有帮助,给 GitHub 仓库点个 ⭐ 将是对我极大的鼓励。感谢阅读!