콘텐츠로 이동

도구 비교

ZNTC는 TypeScript/Flow 트랜스파일러 + library/app 번들러 + dev server를 한 바이너리/패키지에서 제공하는 쪽에 초점을 둡니다. Vite 전체 생태계나 webpack loader/plugin universe를 그대로 복제하는 것이 목표는 아닙니다.

표기의미
지원문서화된 public surface와 회귀 테스트가 있음
부분핵심 경로는 지원하지만 일부 옵션, hook, format, edge case가 제한됨
정책 차이의도적으로 다른 의미론을 선택함
미지원현재 public surface 없음
영역ZNTCRolldownesbuildSWCRspack/Vite
TS/JSX/Flow 단일 파일 변환지원부분TS/JSX 지원, Flow 미지원지원loader/plugin 조합
library bundling지원지원지원spack/swcpack은 v2에서 제거 예정Rspack 지원, Vite는 Rollup/Rolldown 사용
app builder (index.html, env, public)지원Vite 통합 경로 권장serve/build primitive 중심미지원Vite/Rspack 강점
code splitting지원지원지원제한적지원
manual chunks지원 (config/API)지원미지원미지원지원
runtime core-js polyfills지원외부 plugin/사용자 처리미지원env 중심Rspack/SWC loader 계층
React Native preset지원미지원미지원transformer로 사용 가능Metro/Rspack 별도
WASM playground지원WASM build 제공browser build 제공wasm package 제공도구별 상이
영역ZNTC 상태비고
esbuild-style setup(build)부분onResolve, onLoad, onTransform, onResolveContext, onAstFunction 중심
Rollup/Vite-style resolveId / load / transform지원vitePlugin() wrapper 사용
output hooks (renderChunk, generateBundle)부분일반 후처리 가능. 모든 Rollup hook을 지원하지는 않음
lifecycle (buildStart, buildEnd, closeBundle)지원watch()에서도 초기 build와 rebuild마다 호출
this.resolve() / this.emitFile()미지원graph mutation surface로 별도 설계 필요
buildSync() + JS plugin미지원native worker가 JS callback을 기다리는 구조와 충돌
plugin hook filter부분esbuild-style filter는 지원. Rolldown object-hook filter와 완전 동일하지 않음
영역ZNTC비교
CLI/JS API/config 옵션대부분 대응옵션 매트릭스에서 surface별 확인
metafile JSON지원esbuild 호환 basic format
interactive bundle analyzer지원/analyze/에서 meta.json 업로드
--analyze tree 출력부분현재 JSON 중심. CLI tree format은 후속
profile/benchmark지원--profile*, zntc bench, JS benchmark()
diagnostic docs URL지원ZNTCxxxx 에러 코드 문서와 연결
기능ZNTC비고
zntc dev / zntc build / zntc preview지원dev/build/preview 의미를 맞추는 방향
HTML entry rewrite지원<script type="module" src> 엔트리 처리
.env* / import.meta.env.*지원--env-dir, --env-prefix
public/ 복사지원--public-dir
CSS Modules지원app mode
PostCSS / Tailwind v4지원@tailwindcss/postcss 설정
Sass/SCSS지원선택 의존성 sass 필요
Less/Stylus미지원사전 컴파일 또는 plugin 처리
CSS-only HMR지원PostCSS dependency watch 포함
error overlay지원build/runtime error overlay, sourcemap remap
import.meta.glob지원Vite 호환 (eager / import 옵션)
SSR build미지원현재 product boundary 밖
dev proxy지원--proxy /api=http://...
항목ZNTC 정책
import attributes loader overridewith { type }은 pass-through metadata. loader 선택은 확장자/loader 옵션 기준
physical device runtime targetiPhone 8 같은 물리 디바이스 이름은 받지 않음. Browserslist query를 사용
auto node polyfill자동 polyfill 묶음은 제공하지 않음. fallback, alias, plugin으로 명시
property manglepublic API 안정성과 디버깅 비용 때문에 우선순위 낮음
SSRVite/Rspack과 달리 현재 앱 빌더의 핵심 범위가 아님