- Category
- Developer Tools
- Rank
- No. 917Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- wevm
- GitHub
- 61 stars
- Latest release
- v0.0.30
- Date
About
Opinionated build tool for TypeScript libraries from the wevm team. Minimal config, fast builds, sensible defaults.
What it does
Zile turns TypeScript library source into publishable ESM JavaScript and declaration files. It discovers single, multiple, and command-line entry points from package metadata, then rewrites distribution metadata to point at built artifacts. A development command substitutes symlinks to source, while publishing commands prepare a reduced manifest and restore the original afterward.
Why it's ranked here
Zile presents a coherent path from source entry points to registry-ready output. Its case rests on practical details: declaration generation, asset copying, binary remapping, monorepo package discovery, development symlinks, and publishing cleanup all follow the same package-driven model.
What's good
It emits JavaScript, declarations, source maps, and declaration maps while validating that declared entry points exist. Multiple exports and binaries receive matching built paths without manual duplication. The development mode links output paths directly to source. It can also type-check and format TypeScript examples embedded in documentation comments.
Tradeoffs
Output is ESM only. Zile also overrides several compiler choices: declarations and maps stay enabled, external library checking stays disabled, and project references plus incremental compilation stay disabled. Binary source entries use a required suffix convention. Teams needing CommonJS or full compiler-policy control will find the opinions restrictive.
How to use it well
Use Zile for TypeScript libraries or command-line packages whose source entry points can live in package metadata. It suits monorepos because it can discover and build multiple packages through glob patterns. Use linking during local development and the paired publishing steps for registry releases. It does not cover CommonJS output or unrestricted compiler configuration.
Technical notes+
src/Cli.ts builds the cac-based CLI and exposes build, dev, new, examples:check, publish:prepare, and publish:post commands. src/internal/cli/commands.ts connects those commands to Package.build and Examples.check, implements project scaffolding, and temporarily preserves package.json during publishing. src/Package.ts reads package.json and tsconfig.json, validates entry points, invokes transpilation, copies assets, decorates exports and binaries, writes distribution metadata, and creates symlinks in link mode. src/Packages.ts discovers package directories with fs.glob and builds them concurrently. src/Examples.ts uses the TypeScript AST to extract JSDoc code fences, runs tsc checks, formats through oxfmt, and can rewrite corrected snippets. src/Cli.test.ts, src/Package.test.ts, src/Packages.test.ts, and src/Examples.test.ts exercise these paths under the Vitest setup in vitest.config.ts.
Observed
- License
- MIT
- Primary language
- TypeScript
- Install surface
- Published as an npm package and documented for installation as a development dependency alongside TypeScript
- Interfaces
- Provides both a command-line interface and exported library modules
- Output format
- Produces pure ESM JavaScript with TypeScript declaration files
- Compiler support
- Uses TypeScript compiler tooling, with optional native-preview compiler support
- Package scope
- Supports single entry points, multiple exports, binary entry points, and multi-package discovery
Read from README.md, package.json, src/Cli.ts, src/index.ts, src/Package.ts, src/Cli.test.ts, src/Examples.ts, src/Packages.ts, src/Package.test.ts, src/Examples.test.ts, src/Packages.test.ts, src/internal/cli/commands.ts, vitest.config.ts, template/vite.config.ts, template/src/Foo.ts.
What it can do
Build TypeScript libraries
TypeScript source code → Compiled JavaScript library files
Bundle library dependencies
TypeScript project with dependencies → Bundled library package
Generate type declarations
TypeScript source files → .d.ts type definition files
Optimize build performance
TypeScript library project → Fast compilation results
Apply default build configuration
TypeScript project without config → Built library with sensible defaults
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
