설치
ZNTC 는 npm registry 에 publish 된 여러 패키지로 구성되어 있습니다. 사용 시나리오에 맞춰 필요한 패키지를 설치하세요.
패키지 한눈에 보기
섹션 제목: “패키지 한눈에 보기”| 패키지 | 용도 | 포함 |
|---|---|---|
@zntc/core | CLI + Node/Bun in-process API (NAPI) | zntc 바이너리, transpile() / build() / buildSync() / watch() / vitePlugin() |
@zntc/wasm | 브라우저 · Edge · WASI 환경 | WASM 빌드 트랜스파일러 |
@zntc/vite-plugin | Vite 통합 | esbuild 자리 대체 plugin |
@zntc/react-native | React Native 번들러 / RN 0.72+ | Metro 호환 surface |
@zntc/init | 기존 RN CLI 프로젝트에 ZNTC 얹기 | zntc-init 스캐폴드 |
CLI + JS API (@zntc/core)
섹션 제목: “CLI + JS API (@zntc/core)”가장 흔한 시나리오. zntc 명령과 import { ... } from '@zntc/core' 둘 다 제공.
bun add -d @zntc/corenpm i -D @zntc/corepnpm add -D @zntc/coreyarn add -D @zntc/coredeno add -D npm:@zntc/core설치 후 즉시 CLI 사용 가능:
bunx zntc --bundle src/index.ts -o dist/bundle.jsnpx zntc --bundle src/index.ts -o dist/bundle.jspnpm dlx zntc --bundle src/index.ts -o dist/bundle.jsyarn dlx zntc --bundle src/index.ts -o dist/bundle.jsdeno run -A npm:@zntc/core --bundle src/index.ts -o dist/bundle.jsJS API:
import { init, transpile, build, buildSync, vitePlugin } from "@zntc/core";
init();
// 트랜스파일const { code } = transpile("const x: number = 1;");
// 동기 번들링const result = buildSync({ entryPoints: ["src/index.ts"], format: "esm", minify: true,});
// 비동기 번들링 + JS 플러그인const result2 = await build({ entryPoints: ["src/index.ts"], define: { "process.env.NODE_ENV": '"production"' }, plugins: [{ name: "css-plugin", setup(build) { build.onLoad({ filter: /\.css$/ }, () => ({ contents: 'export default "red";', })); }, }],});
// Vite/Rollup 플러그인 어댑터const result3 = await build({ entryPoints: ["src/index.ts"], plugins: [ vitePlugin({ name: "env-replace", transform(code) { return code.replace("import.meta.env.MODE", '"production"'); }, }), ],});@zntc/core 는 OS/아키텍처별 native binary (@zntc/core-darwin-arm64, @zntc/core-linux-x64-gnu 등) 를 optional dependency 로 자동 가져갑니다.
WASM — 브라우저 / Edge / WASI
섹션 제목: “WASM — 브라우저 / Edge / WASI”Node.js 가 없는 환경 (브라우저 playground, Cloudflare Workers, Deno) 에서는 WASM 빌드를 사용:
bun add @zntc/wasmnpm i @zntc/wasmpnpm add @zntc/wasmyarn add @zntc/wasmdeno add npm:@zntc/wasmimport { init, transpile } from "@zntc/wasm";
await init();const result = transpile("const x: number = 1;");console.log(result.code); // "const x = 1;"Vite 플러그인
섹션 제목: “Vite 플러그인”esbuild 자리 대체:
bun add -d @zntc/vite-pluginnpm i -D @zntc/vite-pluginpnpm add -D @zntc/vite-pluginyarn add -D @zntc/vite-plugindeno add -D npm:@zntc/vite-pluginimport { defineConfig } from "vite";import zntc from "@zntc/vite-plugin";
export default defineConfig({ plugins: [zntc()],});React Native
섹션 제목: “React Native”기존 React Native CLI 프로젝트에 얹기 — 단발 실행:
bunx @zntc/initnpx @zntc/initpnpm dlx @zntc/inityarn dlx @zntc/initdeno run -A npm:@zntc/init자세한 옵션은 React Native 가이드 참고.
직접 설치:
bun add -d @zntc/core @zntc/react-nativenpm i -D @zntc/core @zntc/react-nativepnpm add -D @zntc/core @zntc/react-nativeyarn add -D @zntc/core @zntc/react-nativedeno add -D npm:@zntc/core npm:@zntc/react-native글로벌 설치 (CLI 만)
섹션 제목: “글로벌 설치 (CLI 만)”특정 프로젝트와 무관하게 zntc 명령을 시스템 전역에서 사용:
bun add -g @zntc/corenpm i -g @zntc/corepnpm add -g @zntc/coreyarn global add @zntc/coredeno install -A -g npm:@zntc/core소스에서 빌드 (컨트리뷰터 / 최신 main)
섹션 제목: “소스에서 빌드 (컨트리뷰터 / 최신 main)”publish 된 npm 버전이 아닌 최신 main 브랜치 또는 직접 수정한 코드로 동작시키려면:
사전 요구사항
섹션 제목: “사전 요구사항”- Zig 0.15.2 (mise 설치 권장)
- Bun 1.3+ 또는 Node.js 24+
- Git
git clone https://github.com/ohah/zntc.gitcd zntczig build -Doptimize=ReleaseFast빌드된 바이너리: zig-out/bin/zntc. PATH 에 추가하면 npm 설치본과 같은 식으로 사용 가능:
# ~/.zshrc 또는 ~/.bashrcexport PATH="$PATH:/path/to/zntc/zig-out/bin"NAPI 패키지를 직접 빌드하려면:
zig build napi # @zntc/core 의 native binaryzig build wasm wasm-bundler # @zntc/wasm 의 .wasm