3.6 KiB
3.6 KiB
템플릿 스캐폴딩 (create-template)
새로운 템플릿(관리자 또는 사용자)의 기본 구조를 생성합니다.
TL;DR (5초 요약)
1. 명령: /create-template vendor-template [--type=admin|user]
2. 위치: templates/_bundled/vendor-template/
3. 참조 샘플: templates/_bundled/gnuboard7-hello_admin_template/ (Admin), gnuboard7-hello_user_template/ (User)
4. hidden 플래그: manifest.hidden=true 시 관리자 UI 제외 (CLI 정상)
5. 생성 후: npm install → template:build → template:install → template:activate
사용법
/create-template vendor-template [--type=admin|user]
예시:
/create-template sirsoft-admin_modern— Admin 템플릿/create-template sirsoft-modern --type=user— User 템플릿
기본값은 admin입니다.
입력 형식
vendor-template— 벤더명과 템플릿명을 하이픈(-)으로 연결- Admin 네이밍 권장:
vendor-admin_xxx(예:sirsoft-admin_modern) - User 네이밍 권장:
vendor-xxx(예:sirsoft-modern)
생성 위치
templates/_bundled/vendor-template/
생성되는 파일
| 파일 | 설명 |
|---|---|
template.json |
메타데이터 SSoT (type, components, error_config, externals 등) |
routes.json |
프론트엔드 라우트 정의 |
components.json |
컴포넌트 레지스트리 매핑 |
CHANGELOG.md |
Keep a Changelog 형식 |
LICENSE |
MIT 라이선스 |
lang/{ko,en}.json |
다국어 |
layouts/_[type]_base.json |
베이스 레이아웃 (slot 시스템) |
layouts/errors/*.json |
에러 레이아웃 6종 (401/403/404/500/503/maintenance) |
layouts/[초기 페이지].json |
admin: admin_dashboard / user: home |
src/index.ts |
컴포넌트 등록 엔트리 |
package.json |
npm 패키지 설정 |
vite.config.ts |
Vite 빌드 (IIFE 출력) |
vitest.config.ts |
Vitest 테스트 설정 |
tsconfig.json |
TypeScript 설정 |
생성되는 디렉토리
src/components/basic/— 기본 컴포넌트 (Div, Button, Input 등)src/components/composite/— 합성 컴포넌트 (Modal, Toast 등)src/components/layout/— 레이아웃 컴포넌트 (Container, Flex, Grid, Section)assets/css/,assets/fonts/,assets/images/— 정적 에셋preview/— 미리보기 이미지__tests__/layouts/— 레이아웃 렌더링 테스트
Admin vs User 차이
| 항목 | Admin | User |
|---|---|---|
| type | "admin" |
"user" |
| 라우트 접두사 | */admin/* |
/ |
| auth_required 기본 | true |
false |
| 버전 히스토리 | 미지원 (읽기 전용) | 지원 (편집 가능) |
| 베이스 레이아웃 | header + sidebar + content + footer | header + content + footer |
| 초기 페이지 | admin_dashboard |
home |
| 필수 composite | AdminHeader, AdminSidebar, AdminFooter, Modal, Toast | Header, Footer, Modal, Toast |
| features | 미포함 | dark_mode, responsive, multi_language, multi_currency |
생성 후 다음 단계
# 1. 패키지 설치
cd templates/_bundled/vendor-template
npm install
# 2. 컴포넌트 구현 (src/components/)
# 3. 빌드 및 설치
php artisan template:build vendor-template
php artisan template:install vendor-template
php artisan template:activate vendor-template