test: verify bundled decoders and artifact budgets (#7)
This commit is contained in:
@@ -392,9 +392,12 @@ path와 host의 `node_modules`를 표준 build 입력으로 사용하지 않습
|
||||
문법과 repository-relative path로 작성합니다.
|
||||
- development, production build, E2E, optional asset processing은 서로 다른
|
||||
container target 또는 profile로 분리합니다. production artifact에 compiler,
|
||||
browser, fixture와 asset tool을 포함하지 않습니다.
|
||||
browser, test 전용 fixture와 asset tool을 포함하지 않습니다. `public/samples`의
|
||||
demo asset은 의도된 runtime content이므로 provenance·license gate를 별도로 적용합니다.
|
||||
- container process는 non-root user로 실행하고 source는 read-only mount를
|
||||
우선합니다. dependency cache와 build output만 별도 writable volume을 사용합니다.
|
||||
우선합니다. `npm ci`의 postinstall decoder staging은 writable image build layer에서
|
||||
끝내고, runtime container에서는 완성된 artifact만 read-only로 제공합니다.
|
||||
dependency cache와 build output만 별도 writable volume을 사용합니다.
|
||||
- host에서 직접 실행할 때 Vite는 loopback에만 bind합니다. container에서 port를
|
||||
publish할 때만 container 전용 설정으로 `0.0.0.0`에 bind하고 공개 network에
|
||||
노출하지 않습니다.
|
||||
@@ -407,13 +410,12 @@ path와 host의 `node_modules`를 표준 build 입력으로 사용하지 않습
|
||||
|
||||
## Linux 컨테이너 전환 검증
|
||||
|
||||
2026-07-29 기준 installed dependency 상태에서 typecheck, unit test 8개와 production
|
||||
build는 Linux/WSL2 x86_64에서 다시 통과했습니다. 기존 검증 기록의 Playwright E2E
|
||||
16개 통과 결과는 있으나 이번 문서 변경에 대한 E2E 재실행은 요청에 따라 뒤로
|
||||
미뤘습니다. tracked text file은 LF이며 lockfile에는 Linux glibc와 musl용 native
|
||||
optional package가 포함되어 있습니다. 따라서 application code를 Windows 전용
|
||||
구현에서 이식하는 작업은 거의 끝났지만, clean `npm ci`부터 시작하는 재현 가능한
|
||||
container 개발 환경의 정의와 현재 E2E 재검증은 아직 완료되지 않았습니다.
|
||||
2026-07-29 기준 installed dependency 상태에서 typecheck, unit test 8개, production
|
||||
build와 Playwright E2E 17개가 Linux/WSL2 x86_64에서 다시 통과했습니다. tracked
|
||||
text file은 LF이며 lockfile에는 Linux glibc와 musl용 native optional package가
|
||||
포함되어 있습니다. 따라서 application code의 Windows 종속성은 현재 검증 범위에서
|
||||
발견되지 않았지만, clean `npm ci`부터 시작하는 재현 가능한 container 개발 환경의
|
||||
정의와 검증은 아직 완료되지 않았습니다.
|
||||
|
||||
| 항목 | 현재 상태 | container 전환 판단 |
|
||||
|---|---|---|
|
||||
@@ -497,9 +499,11 @@ npm run verify
|
||||
- workspace typecheck 통과
|
||||
- Vitest 5개 file, 8개 test 통과
|
||||
- 2D·3D production build 통과
|
||||
- production artifact gate 통과: 27개 file, 8,149,402 bytes, 50 kB 이상 중복 0개
|
||||
- production artifact gate 통과:
|
||||
- 2D: 8개 file, 4,302,677 bytes, 50 kB 이상 중복 0개
|
||||
- 3D: 27개 file, 8,149,402 bytes, 50 kB 이상 중복 0개
|
||||
- 3D `dist`는 경량화 전 24,945,531 bytes에서 16,796,129 bytes(67.3%) 감소
|
||||
- Playwright 17개 E2E 통과, 21.9초
|
||||
- Playwright 17개 E2E 통과, 24.5초
|
||||
- build 실패는 없지만 2D main bundle, Three.js, web-ifc와 decoder JS에
|
||||
500 kB 초과 chunk 경고가 있음
|
||||
|
||||
@@ -514,7 +518,7 @@ npm run verify
|
||||
- 2D DWG/DXF sample과 local file load
|
||||
- 3D GLB, Draco GLB, OBJ, FBX, DAE, IFC, PLY sample render
|
||||
- 2D/3D canvas dispose와 반복 page transition
|
||||
- production subpath의 Draco·IFC decoder request
|
||||
- production subpath의 Draco·Basis KTX2·IFC decoder request와 실제 decode
|
||||
- 2D DWG/DXF와 3D GLB/PLY evidence screenshot
|
||||
|
||||
이 검증은 sample이 화면에 나타나고 runtime error가 없다는 smoke/contract 수준입니다.
|
||||
|
||||
Reference in New Issue
Block a user