ncc vs webpack
ncc
github.comwebpack
webpack.js.orgSide by side
| Figure | ncc | webpack |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| Linux | Yes | — |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · JavaScript Build Tools | 8.2 (#5) | 7.3 (#23) |
| Configuration | The design goals include zero configuration and built-in TypeScript support. | Since version 4.0.0, webpack does not require a configuration file, although it remains highly configurable. |
| Installation | The README gives `npm i -g @vercel/ncc` as the installation command. | The project recommends local npm installation and requires a fresh Node.js installation, with webpack-cli additionally needed for command-line use from webpack v4 onward. |
| Integrations | The package support guide gives configuration examples for Sequelize with MariaDB and for `@google-cloud/vision` with `google-proto-files`. | Official integrations documentation covers Browserify, Brunch, Grunt, Gulp, Mocha and Karma. |
| What it does | ncc is a CLI that compiles a Node.js module and its dependencies into a single file. | Webpack is a static module bundler for modern JavaScript applications that builds a dependency graph and combines modules into bundles. |
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.
webpack
webpack is a free, open-source static module bundler for modern JavaScript applications. It builds a dependency graph and combines modules into bundles, with code splitting for on-demand loading. Built-in support covers JavaScript, JSON, WebAssembly, CSS and HTML. Loaders transform sources such as Sass into CSS or TypeScript into JavaScript, while plugins customize compilation through lifecycle hooks. ModuleFederationPlugin lets independently built applications share modules at runtime. Since version 4.0.0, webpack can run without a configuration file, although it remains highly configurable. Interfaces include the CLI, Node API, loader API and plugin API, and documentation covers integrations with Browserify, Brunch, Grunt, Gulp, Mocha and Karma. The project recommends local npm installation and a fresh Node.js installation; command-line use from webpack v4 onward also requires webpack-cli. The MIT-licensed software supports tree shaking and source maps. CSP is not enabled by default, and native CSS and HTML support are experimental.