사이트 매니페스트
Showly가 경로, 빌드 명령 및 런타임 요구 사항을 설명하는 방법입니다.
사이트 매니페스트는 Showly에서 사이트를 구축, 배포 및 제공하는 방법을 알기 위해 사용하는 문서입니다. 가져온 작업공간의 루트에 showly.json로 존재합니다. 이는 모든 빌드의 정보 소스입니다. 자동 감지는 가져올 때 초기 버전을 생성합니다. 언제든지 직접 편집할 수 있습니다.
기본값은 .인 rootDirectory를 제외한 모든 필드는 선택 사항입니다. Showly는 자동 감지를 통해 합리적인 기본값을 채우므로 최소한의 유효한 매니페스트는 빈 객체가 될 수 있습니다.
모양
{
"rootDirectory": ".",
"runtime": "node",
"runtimeVersion": "22",
"packageManager": "pnpm",
"installCommand": "pnpm install",
"buildCommand": "pnpm build",
"output": {
"type": "static",
"directory": "dist"
},
"startCommand": "node server.js"
}
필드 참조
rootDirectory — 사이트가 포함된 저장소 내의 디렉터리입니다. 기본값은 .입니다. 단일 저장소가 하위 디렉토리에 사이트를 보유하는 경우 이를 설정하십시오.
runtime — 배포된 사이트의 실행 런타임입니다. static, node, rust, go 또는 docker 중 하나입니다. 생략하면 Showly는 감지된 프레임워크에서 이를 추론합니다.
runtimeVersion — 런타임 버전(예: Node 주 버전)입니다. Showly 현재 Active LTS 라인을 지원합니다. 라이브 세트는 GET /admin/platform/runtime-catalog에 있습니다.
packageManager — 사용할 패키지 관리자입니다(예: pnpm, npm 또는 yarn). 기본값은 잠금 파일에서 감지된 것입니다.
installCommand — 종속성을 설치하는 쉘 명령입니다. 패키지 관리자의 표준 설치 명령이 기본값입니다.
buildCommand — 배포 가능한 아티팩트를 생성하는 셸 명령입니다. 기본값은 프레임워크의 표준 빌드 명령이지만 직접 제공할 수도 있습니다.
output — 빌드가 아티팩트를 방출하는 위치와 방법. 두 개의 선택적 키인 type(아티팩트 종류) 및 directory(rootDirectory를 기준으로 빌드가 작성하는 경로)가 있는 중첩 객체입니다.
startCommand — 수명이 긴 프로세스를 실행하는 런타임용 서버를 시작하는 명령입니다(예: node). 정적 사이트에는 필요하지 않습니다.
프레임워크 감지
framework은 매니페스트 입력이 아님 — Showly은 package.json, 잠금 파일 및 기타 저장소 규칙에서 자동 감지합니다. 감지된 값은 astro, vite, next-export, static-html, custom, unknown 중 하나입니다. 프레임워크가 unknown로 확인되면 UnsupportedFrameworkError와 함께 빌드가 실패합니다. runtime을 설정하고 프로젝트 Showly를 배포하기 위해 명시적으로 관련 명령을 분류할 수 없습니다.
직접 편집해야 하는 경우
- 빌드 명령을 변경했고 Showly가 따르기를 원합니다.
- 저장소의 하위 디렉터리에 사이트가 있습니다 —
rootDirectory로 설정하세요. - 자동 감지가 런타임을 잘못 추측했습니다.
runtime를 명시적으로 설정하세요. - 설치 또는 시작 명령이 패키지 관리자 기본값과 다릅니다.
검증 및 실패 모드
showly.json가 유효하지 않거나(JSON) 개체가 아닌 다른 것으로 구문 분석하는 경우InvalidManifestError와 함께 빌드가 실패합니다.- 프레임워크를 분류할 수 없는 경우(
unknown로 확인)UnsupportedFrameworkError와 함께 빌드가 실패합니다.
매니페스트가 제어하지 않는 것
- 환경 변수 값 - Showly UI에서 환경별로 설정되며 비밀 저장소에 있습니다.
- 승인 규칙 - 작업 공간 정책입니다.
- 배포 대상(서버리스 컨테이너 대 정적 CDN) - 배포 대상 설정입니다.
매니페스트는 _빌드의 모습_입니다. 작업 공간 설정은 _결과에 대해 누가 무엇을 할 수 있는지_입니다.