ncc vs Turbopack
ncc
github.comTurbopack
nextjs.orgSide by side
| Figure | ncc | Turbopack |
|---|---|---|
| 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.4 (#18) |
| Purpose | ncc is a CLI that compiles a Node.js module and its dependencies into a single file. | Turbopack is an incremental JavaScript and TypeScript bundler written in Rust and built into Next.js. |
| Support channel | The package support guide suggests searching the issue queue or posting an issue when a package does not run with ncc. | The documentation says users can attach a generated Turbopack trace file when filing a GitHub issue to help the Next.js team investigate performance or memory issues. |
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.
Turbopack
Turbopack is an incremental JavaScript and TypeScript bundler written in Rust and built into Next.js. It supports the Pages Router and App Router for local development and is the default bundler in Next.js for basic use without configuration. It parallelizes work across CPU cores, caches results at the function level and persists them between runs. Lazy bundling processes only what the development server requests, which can reduce initial compile time and memory use. Its support includes JavaScript, TypeScript, ECMAScript, CommonJS, ESM and Babel configuration detection in Next.js 16, along with JSX, Fast Refresh and React Server Components for the App Router. CSS support includes global CSS, CSS Modules, nesting, PostCSS and Sass/SCSS, but not custom Sass functions. It also handles static image and font imports, JSON, aliases and custom extensions. Native bindings are available for Linux, macOS and Windows. Turbopack is included in Next.js with no separate price stated. It does not perform TypeScript type checking, and it does not support webpack plugins.