Skip to content

[create-croco-app] SSR 라우트 템플릿이 컴포넌트 값을 잘못 연결함 #694

Description

@kang-heewon

Problem

create-croco-app의 SSR 템플릿 라우트 파일이 page component를 값으로 전달하지 못합니다. 한 템플릿은 component: undefined as PageComponent를 생성하고, 다른 템플릿은 type-only import를 런타임 값처럼 사용합니다.

Evidence

  • packages/create-croco-app/templates/container-fullstack/apps/console-web/pages/route.ts:1-8import type { default as PageComponent } 뒤에 component: undefined as PageComponent를 설정합니다.
  • packages/create-croco-app/templates/ssr-lambda/apps/console-web/pages/route.ts:1-8import type { default as Page } 뒤에 component: Page satisfies Page를 사용합니다.
  • packages/meta-vite/src/libs/routes/types.ts:16-22PageRouteDefinition은 실제 React.ComponentType<RenderRouteComponentProps> 값이 필요합니다.

Desired Outcome

생성된 fullstack/SSR 앱은 route definition에서 실제 page component 값을 참조해야 하며, 빌드와 SSR 렌더가 생성 직후 동작해야 합니다.

Suggested Approach

  • route 템플릿에서 page component를 일반 value import로 가져옵니다.
  • component 필드에 실제 component 값을 넣고 타입 검증은 satisfies PageRouteDefinition 등으로 분리합니다.
  • 두 SSR 계열 템플릿이 동일한 라우트 생성 규칙을 공유하도록 정리합니다.

Acceptance Criteria

  • container-fullstackssr-lambda 템플릿의 route 파일이 type-only import를 런타임 값으로 사용하지 않습니다.
  • componentundefined 캐스팅이 남지 않습니다.
  • 생성 앱의 route fixture가 pnpm typecheck와 최소 SSR smoke test를 통과합니다.

Validation

  • pnpm test --filter=create-croco-app
  • 템플릿 생성 후 apps/console-web typecheck/build smoke

Metadata

Metadata

Assignees

Labels

P1Priority 1 issuebugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions