ncc vs Oxc
ncc
github.comOxc
oxc.rsSide by side
| Figure | ncc | Oxc |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · JavaScript Build Tools | 8.2 (#5) | 7.9 (#8) |
| Integrations | The package support guide gives configuration examples for Sequelize with MariaDB and for `@google-cloud/vision` with `google-proto-files`. | Transformer integrations listed by the project include unplugin-oxc, unplugin-isolated-decl, and oxc-webpack-loader. |
Plans
In their own words
ncc
ncc is a free, MIT-licensed command-line tool for compiling a Node.js module and its dependencies into one file. It is distributed through npm as `@vercel/ncc`, with `npm i -g @vercel/ncc` given as the global installation command. The project targets publishing minimal npm packages and sending only relevant application code to serverless environments. Its design goals include zero configuration, built-in TypeScript support, and handling Node.js programs and npm modules. Inputs can include TypeScript, binary addons, and dynamic requires. Build options cover minification, source maps, watched builds, external modules, and ECMAScript target selection. Node.js programs can call ncc programmatically with options for caching, externals, minification, source maps, and asset builds. `.ts` and `.tsx` inputs require a `tsconfig.json`. Module-format behavior includes automatic ES module output for `.mjs` files and `.js` files inside a `type: module` package boundary. Support examples cover Sequelize with MariaDB and `@google-cloud/vision` with `google-proto-files`. Dynamically loaded assets that static analysis cannot identify may not work correctly. It runs on Linux.
Oxc
Oxc is a free collection of JavaScript tools written in Rust, available for Linux, macOS and Windows. Its toolchain includes a linter, formatter, parser, transformer, resolver, minifier and TypeScript runner. Oxlint checks JavaScript and TypeScript, including JSX, TSX and script blocks in Vue, Svelte and Astro files. It includes more than 870 rules across areas such as TypeScript, React, Jest, Vitest, imports, Unicorn and accessibility. Type-aware linting uses tsgo, a native Go port of the TypeScript compiler. Oxfmt follows a Prettier-compatible workflow and can sort imports, Tailwind CSS classes and package.json fields; it formats JavaScript, TypeScript, JSON, YAML, TOML, HTML, Vue, Svelte, CSS, Markdown, GraphQL and other formats. The transformer handles TypeScript and JSX, syntax lowering from ES2026 to ES2015, React Refresh, plugins and isolated declaration output. An experimental runner executes TypeScript and JSX without a separate build step, with ESM, CommonJS, source map and tsconfig.json support. It strips types but does not type-check programs, and its APIs and behavior may change between releases.