메인 콘텐츠로 건너뛰기

Kazzle CLI

Kazzle CLI를 사용하여 앱 명령을 개발 및 미리보기에서 실행합니다:
kazzle run -- <command>
-- 뒤의 모든 것이 실제 명령입니다. Kazzle이 먼저 런타임 환경을 주입합니다. kazzle run은 개발 및 미리보기 전용입니다. dev 스크립트에 속하며, start에는 절대 포함되지 않습니다. 프로덕션에서는 배포된 런타임이 PORT, HOST, 시크릿을 직접 주입하고, 프로덕션 명령은 기본 명령입니다(예: bun run index.ts). kazzle CLI는 배포된 이미지에 설치되지 않으므로, kazzle run을 호출하는 프로덕션 명령은 kazzle: command not found로 실패합니다.

kazzle run이 주입하는 것

  • 컴포넌트의 kazzle.config.ts에 있는 env 항목의 시크릿
  • PORTHOST
  • KAZZLE_APP_COMPONENT_SERVER_URL 같은 형제 컴포넌트 URL
  • 앱 ID 및 컴포넌트 이름 같은 Kazzle 런타임 ID

예제

{
  "scripts": {
    "dev": "kazzle run -- bun --watch server/index.ts",
    "start": "bun server/index.ts"
  }
}
devkazzle run을 통해 실행되므로 Kazzle이 미리보기 포트와 런타임 환경을 주입할 수 있습니다. start는 기본 명령입니다 — 프로덕션은 PORT/HOST/시크릿을 자체적으로 주입합니다. package.json에 시크릿 컬렉션 이름을 넣지 마세요. kazzle.config.ts에 넣으세요.
components: [
  {
    name: 'server',
    type: 'process',
    path: './server/index.ts',
    env: { collection: 'my-app', environment: 'local' },
  },
]

체크아웃을 앱에 연결하기

kazzle run은 이 디렉토리가 어느 앱에 속하는지 알아야 합니다. 해결 순서:
  1. 명령줄의 --app=<appId>
  2. KAZZLE_APP_ID 환경 변수(Kazzle이 감시되는 컴포넌트를 시작할 때 자동으로 설정됨)
  3. 현재 디렉토리에서 위로 탐색한 .kazzle/link.json
이 중 어느 것도 해결되지 않으면 kazzle run은 다음과 함께 종료됩니다:
Error: This directory is not linked to a Kazzle app. Run `kazzle link` to fix.
app { action: "create" }<checkout>/.kazzle/link.json을 자동으로 작성합니다 — Vercel의 .vercel/project.json처럼. 파일은 클론별이며 gitignored입니다. 기존 앱의 새로운 git clone 후에 다음을 실행하세요:
kazzle link              # 현재 디렉토리를 스페이스의 앱 체크아웃과 일치시킵니다
kazzle link --app=<id>   # 특정 앱을 강제합니다
kazzle unlink            # 링크 파일을 삭제합니다
AI는 스레드에서 app { action: "link", appId }로 누락된 링크를 복구할 수 있습니다.