create-stackbuild คือ CLI สำหรับสร้างโปรเจกต์ full-stack แบบ monorepo ด้วยคำสั่ง npm create stackbuild@latest my-project
- Node.js เวอร์ชัน 20 ขึ้นไป
- Go รุ่น stable ปัจจุบัน เมื่อต้องการเลือก backend แบบ Go + Gin
- Docker Compose v2 เมื่อต้องการเลือก Docker
- pnpm, npm, Yarn หรือ Bun ตาม package manager ที่เลือก
StackBuild ใช้เวอร์ชันที่ผ่านการทดสอบร่วมกันสำหรับ framework หลัก (เช่น Next.js, NestJS, TypeScript, Vite และ React) เพื่อให้โปรเจกต์ที่สร้างมีความเสถียร ส่วน Dependabot จะเสนอ PR อัปเดตทุกสัปดาห์ และ CI จะตรวจทุก template ก่อนนำเวอร์ชันใหม่มาใช้
ระบุชื่อโฟลเดอร์ของโปรเจกต์ต่อท้ายคำสั่ง:
npm create stackbuild@latest my-projectจากนั้น StackBuild จะถามเพื่อกำหนดโปรเจกต์ตามลำดับดังนี้:
- รูปแบบแอป
- Customer + API + Admin + Partner
- Customer + API + Partner
- Customer + API + Admin
- Customer + API
- Custom — เลือก frontend ที่ต้องการเอง โดยมี API เสมอ
- Frontend — Vite หรือ Next.js
- Backend — Go + Gin หรือ Node.js + NestJS
- UI — Material UI, Tailwind CSS หรือ Plain CSS
- Database — PostgreSQL, MySQL, SQLite หรือไม่ใช้ฐานข้อมูล
- Cache — หลังเลือกฐานข้อมูล จะเลือก
Use Redis cacheหรือNo cache - Package manager — pnpm (ค่าเริ่มต้นสำหรับ monorepo), npm, yarn หรือ bun
- Docker — เลือกว่าจะให้สร้างไฟล์ Docker หรือไม่
เมื่อยืนยันคำตอบ CLI จะสร้างโปรเจกต์ตามตัวเลือกที่เลือกไว้ และติดตั้ง dependencies ให้โดยอัตโนมัติ
สามารถข้ามหน้าคำถามด้วย flags ได้ โดยต้องใส่ -- ก่อน flags เพื่อส่งต่อให้ StackBuild:
npm create stackbuild@latest my-project -- \
--preset customer-admin \
--frontend vite \
--backend go \
--ui mui \
--database postgres \
--cache redis \
--package-manager pnpm \
--docker| Flag | ค่าที่ใช้ได้ / ความหมาย |
|---|---|
--preset |
full, customer-partner, customer-admin, customer-api หรือ custom |
--template |
ชื่อเดียวกับ --preset ใช้สำหรับระบุ template แบบไม่ต้องตอบคำถาม |
--apps |
รายชื่อ frontend คั่นด้วย comma สำหรับ --preset custom เช่น customer,partner |
--frontend |
vite หรือ next |
--backend |
go หรือ nest |
--ui |
mui, tailwind หรือ css |
--database |
postgres, mysql, sqlite หรือ none |
--cache |
redis หรือ none |
--package-manager |
pnpm, npm, yarn หรือ bun |
--go-module |
Go module path เมื่อเลือก --backend go |
--skip-install |
สร้างไฟล์โดยไม่ติดตั้ง dependencies |
--no-git |
ไม่สร้าง Git repository ในโปรเจกต์ใหม่ |
--docker / --no-docker |
เปิดหรือปิดการสร้างไฟล์ Docker |
--force |
อนุญาตให้สร้างในโฟลเดอร์ที่มีไฟล์อยู่แล้ว |
--dry-run |
แสดงแผนการสร้างโดยไม่เขียนไฟล์ |
--debug |
แสดงรายละเอียด error เพิ่มเติม |
ค่าที่ระบุผ่าน flags จะมีผลเหนือกว่าคำตอบจากหน้าคำถาม
ตัวอย่างตรวจแผนก่อนสร้าง:
npm create stackbuild@latest my-project -- \
--template custom --apps customer,partner --frontend next --backend nest \
--database postgres --cache redis --package-manager pnpm --dry-runหากการติดตั้ง dependency หรือการตั้งค่า Go หยุดกลางทาง StackBuild จะเก็บไฟล์ที่สร้างแล้วไว้ และสร้าง STACKBUILD_RECOVERY.md ในโปรเจกต์ใหม่พร้อมคำสั่ง retry ที่ตรงกับ stack ที่เลือก
workflow GitHub Actions จะตรวจ typecheck, lint, tests และ generator matrix ทุกครั้งที่ push และทุกสัปดาห์ สำหรับการ publish ให้ตั้งค่า npm Trusted Publisher ให้เชื่อมกับ repository นี้และ workflow Publish to npm; เมื่อเผยแพร่ GitHub Release ที่มี tag รูปแบบ v* workflow จะ publish พร้อม npm provenance โดยไม่ต้องเก็บ npm token ใน GitHub Secrets