Registry / devops / fancy-rollup

fancy-rollup

JSON →
library0.5.5jsnpmunverified

fancy-rollup is a multi-process wrapper for Rollup that runs multiple Rollup builds concurrently across CPU cores to speed up bundling. Version 0.5.5 (latest stable) targets Node >=8 and is published on npm. It reads an array of Rollup configurations from rollup.config.js and spawns separate Node processes for each build, providing several reporter styles (interactive, list, silent, etc.) for progress visualization. Unlike Rollup's sequential multi-bundle support, fancy-rollup parallelizes builds out of the box with options for concurrency limits and target selection. The package is in early development (minor version 0.x), with API support still planned. It has no runtime peer dependencies but relies on a compatible rollup installation.

npm install fancy-rollup
INSTALL
IMPORT
SIG · FANCY-ROLLUP
F
fancy-rollup
devopsjavascriptv0.5.5
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18223 runs
build_error
glibc
node 18223 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

fancy-rollup
import fancyRollup from 'fancy-rollup'; // ESM (package has no default ESM export, but Node can transpile)
const fancyRollup = require('fancy-rollup'); // CJS works (package supports require)
fancy-rollup is primarily CLI-based; programmatic API is planned but not yet available. The import shown is for potential future use; currently the package does not export a usable JavaScript API.
cli
npx fancy-rollup
require('fancy-rollup')(); // No such function exported
The main usage is via command line. No programmatic API exposed in v0.5.5.
config
module.exports = [{ input: 'src/main.js', output: { file: 'dist/bundle.js', format: 'esm' } }]; // rollup.config.js array
module.exports = { input: 'src/main.js', output: { file: 'dist/bundle.js', format: 'esm' } }; // Must be an array for fancy-rollup
fancy-rollup expects rollup.config.js to export an array of Rollup configs; a single object will fail silently or cause errors.

Installation, configuration with an array of Rollup configs, and CLI usage. Shows concurrency and reporter options.

// Install fancy-rollup as dev dependency // npm install --save-dev fancy-rollup rollup@^2 // Create rollup.config.js: module.exports = [ { input: 'src/index.js', output: { file: 'dist/index.cjs.js', format: 'cjs' } }, { input: 'src/index.js', output: { file: 'dist/index.esm.js', format: 'esm' } } ]; // Run fancy-rollup: // npx fancy-rollup // or add to package.json scripts: "build": "fancy-rollup" // Advance usage with options: // npx fancy-rollup -c rollup.config.js -t esm -r interactive -p 2
Debug
Known issues
deprecatedfancy-rollup has not seen updates since 2018. Rolling updates and bug fixes are unlikely.
fix
Consider using Rollup's built-in parallelization via --watch or other build tools like esbuild or webpack.
affects: all
gotchaRollup configuration must be an array; a single object will be treated as an array of one element? Actually fancy-rollup expects array, but Rollup itself accepts both. If you export a single object, fancy-rollup will likely fail or behave unexpectedly.
fix
Always export an array of configuration objects: module.exports = [config1, config2];
affects: >=0.1.0
gotchaThe package uses child_process.fork and Node's module resolution to find rollup. If you have multiple versions of rollup in node_modules, it may pick the wrong one.
fix
Ensure only one compatible version (e.g., rollup@^2) is installed in the project's node_modules.
affects: >=0.1.0
gotchaConcurrency default is number of CPU cores. On machines with limited resources, this may cause memory exhaustion or slowdowns.
fix
Use -p option to limit concurrency: fancy-rollup -p 2
affects: >=0.1.0
gotchaReporter options: 'interactive' requires TTY; in non-TTY environments it falls back to 'dumb' but this may not be obvious.
fix
Explicitly set reporter with -r option if you need non-interactive output in CI.
affects: >=0.1.0
Errors
Common errors & fixes
Error: Cannot find module 'rollup'
fancy-rollup cannot locate the rollup package. It searches up the directory tree but fails if no compatible rollup is installed.
fix
Install rollup as a dev dependency: npm install --save-dev rollup
TypeError: Config must be an array
fancy-rollup expects rollup.config.js to export an array of configuration objects, but a single object was exported.
fix
Change module.exports = { ... } to module.exports = [{ ... }]
Error: Failed to spawn child process
Possible permission issues, missing Node.js executable, or system limitation (e.g., max processes reached).
fix
Check that Node.js is installed and the user has permission to spawn processes. Reduce concurrency with -p flag.
Upgrade
Version history
0.5.5latest on npm
Audit
Dependencies
rolluprequiredfancy-rollup wraps Rollup; it uses the installed rollup package to perform bundling in child processes. If rollup is not found, it falls back to its own bundled version (0.x).
Agent activity
2 hits · last 30 days
node
2
Resources
fancy-rollup — npm install fancy-rollup · libregistry