콘텐츠로 이동

설치

ZNTC 는 npm registry 에 publish 된 여러 패키지로 구성되어 있습니다. 사용 시나리오에 맞춰 필요한 패키지를 설치하세요.

패키지용도포함
@zntc/coreCLI + Node/Bun in-process API (NAPI)zntc 바이너리, transpile() / build() / buildSync() / watch() / vitePlugin()
@zntc/wasm브라우저 · Edge · WASI 환경WASM 빌드 트랜스파일러
@zntc/vite-pluginVite 통합esbuild 자리 대체 plugin
@zntc/react-nativeReact Native 번들러 / RN 0.72+Metro 호환 surface
@zntc/init기존 RN CLI 프로젝트에 ZNTC 얹기zntc-init 스캐폴드

가장 흔한 시나리오. zntc 명령과 import { ... } from '@zntc/core' 둘 다 제공.

Terminal window
bun add -d @zntc/core

설치 후 즉시 CLI 사용 가능:

Terminal window
bunx zntc --bundle src/index.ts -o dist/bundle.js

JS 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 로 자동 가져갑니다.

Node.js 가 없는 환경 (브라우저 playground, Cloudflare Workers, Deno) 에서는 WASM 빌드를 사용:

Terminal window
bun add @zntc/wasm
import { init, transpile } from "@zntc/wasm";
await init();
const result = transpile("const x: number = 1;");
console.log(result.code); // "const x = 1;"

esbuild 자리 대체:

Terminal window
bun add -d @zntc/vite-plugin
vite.config.ts
import { defineConfig } from "vite";
import zntc from "@zntc/vite-plugin";
export default defineConfig({
plugins: [zntc()],
});

기존 React Native CLI 프로젝트에 얹기 — 단발 실행:

Terminal window
bunx @zntc/init

자세한 옵션은 React Native 가이드 참고.

직접 설치:

Terminal window
bun add -d @zntc/core @zntc/react-native

특정 프로젝트와 무관하게 zntc 명령을 시스템 전역에서 사용:

Terminal window
bun add -g @zntc/core

소스에서 빌드 (컨트리뷰터 / 최신 main)

섹션 제목: “소스에서 빌드 (컨트리뷰터 / 최신 main)”

publish 된 npm 버전이 아닌 최신 main 브랜치 또는 직접 수정한 코드로 동작시키려면:

  • Zig 0.15.2 (mise 설치 권장)
  • Bun 1.3+ 또는 Node.js 24+
  • Git
Terminal window
git clone https://github.com/ohah/zntc.git
cd zntc
zig build -Doptimize=ReleaseFast

빌드된 바이너리: zig-out/bin/zntc. PATH 에 추가하면 npm 설치본과 같은 식으로 사용 가능:

Terminal window
# ~/.zshrc 또는 ~/.bashrc
export PATH="$PATH:/path/to/zntc/zig-out/bin"

NAPI 패키지를 직접 빌드하려면:

Terminal window
zig build napi # @zntc/core 의 native binary
zig build wasm wasm-bundler # @zntc/wasm 의 .wasm