Plextype Docsv0.10.0
Guides
시작하기
setup, DB 초기화, 개발 서버 실행
프로젝트 구조
코어와 개인 확장 영역
Extensions
기능별 폴더, 라우트 연결, registry·Trigger
Layouts & Page
기본 레이아웃과 홈 페이지 교체
Project API
기능별 API·스키마와 DB 적용 절차
Posts
게시판 스킨과 issuetracker 구조
Components
공통 UI 컴포넌트 사용 기준
Previews
기본 제공 화면 확인
운영 규칙
upstream 패치와 커스텀 충돌 방지
Documentation
문서 작성과 유지 기준
Documentation

Layouts & Page

기본 레이아웃과 홈 페이지를 extensions에서 교체하는 방법입니다.

기본 원칙

레이아웃 교체를 지원하는 라우트는 @extensions에서 제공하는 레이아웃을 사용합니다. 코어 기본 모듈과 확장 레이아웃의 소스는 분리해서 유지합니다.

import { DefaultLayout } from "@extensions";
import { AuthLayout } from "@extensions";

레이아웃 교체

src/extensions/index.tsx에서 같은 이름으로 export하면 기존 app 라우트가 자동으로 커스텀 레이아웃을 사용합니다.

src/extensions/layouts/default/Layout.tsx
src/extensions/layouts/authLayout/Layout.tsx
src/extensions/pages/MainIntro/index.tsx
src/extensions/pages/MainIntro/routes/page.tsx
src/extensions/index.tsx

추가 페이지

새 페이지 구현은 기능 폴더에 두고 routes.json에 Next.js 연결 위치를 선언합니다. route group 이름은 URL에 노출되지 않지만 상위 layout은 적용되므로 기존 레이아웃 계층을 확인합니다.

src/extensions/dashboard/routes/dashboard/page.tsx   구현 원본
src/extensions/dashboard/routes.json                 연결 목록
    ↓ npm run extensions:sync
src/app/(extensions)/dashboard/page.tsx              생성된 연결 파일
    ↓
/dashboard

layout.tsx도 같은 방식으로 연결할 수 있습니다. dynamic, runtime 같은 정적 설정은 routes.json의 configs에 선언하여 연결 파일에 유지합니다. 목록 예시는 [Extensions](/docs/extensions)를 참고하세요.

현재 extensions:sync는 직접 실행하는 명령이며 dev/build 시작 시 자동 실행되지 않습니다. 일반 수작업 라우트 덮어쓰기는 거부하고, 제거된 라우트의 연결 파일을 자동 삭제하지도 않습니다.

주의점

기본 모듈 라우트를 직접 바꾸면 upstream 업데이트 때 충돌이 생기기 쉽습니다. 확장 소유 연결 파일은 routes.json으로 관리하고, 코어 화면 교체는 extension export와 registry를 우선 사용합니다. 폴더에 레이아웃 파일을 넣는 것만으로 등록되지는 않습니다.

Plextype Docsv0.10.0Extensions first, core clean.
ⓒ gjworks
On this page
기본 원칙레이아웃 교체추가 페이지주의점
Recent changes
feat: extension sync 기능 추가 및 쉬운설치 추가
v0.10.0891b287
fix: 알림 관리 기능 추가
v0.10.01409f51
스토어의 앱상품 등록
v0.10.019d39c8