Full-stack-skills rollup
Provides comprehensive guidance for Rollup bundler including configuration, plugins, code splitting, tree shaking, and multi-format library bundling. Use when the user asks about Rollup, needs to bundle JavaScript libraries, optimize output with tree shaking, or configure ESM/CJS builds.
install
source · Clone the upstream repo
git clone https://github.com/partme-ai/full-stack-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/partme-ai/full-stack-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/build-skills/rollup" ~/.claude/skills/partme-ai-full-stack-skills-rollup && rm -rf "$T"
manifest:
skills/build-skills/rollup/SKILL.mdsource content
When to use this skill
Use this skill whenever the user wants to:
- Bundle JavaScript libraries with tree shaking and multi-format output (ESM/CJS/UMD)
- Configure Rollup input, output, plugins, and external dependencies
- Optimize bundle size with code splitting and dead code elimination
- Build libraries for npm distribution
How to use this skill
Workflow
- Configure — create
with input, output, and pluginsrollup.config.js - Build — run
to generate bundlesrollup -c - Validate — check output formats, bundle size, and tree shaking effectiveness
- Publish — set
,main
, andmodule
inexportspackage.json
Quick Start Example
// rollup.config.js import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import terser from '@rollup/plugin-terser'; export default { input: 'src/index.js', output: [ { file: 'dist/index.cjs.js', format: 'cjs', sourcemap: true, }, { file: 'dist/index.esm.js', format: 'es', sourcemap: true, }, ], external: ['react', 'react-dom'], // Don't bundle peer deps plugins: [ resolve(), commonjs(), terser(), // Minify for production ], };
# Build npx rollup -c # Watch mode for development npx rollup -c --watch
// package.json — library distribution fields { "main": "dist/index.cjs.js", "module": "dist/index.esm.js", "exports": { ".": { "import": "./dist/index.esm.js", "require": "./dist/index.cjs.js" } }, "files": ["dist"], "sideEffects": false }
Code Splitting Example
// Dynamic imports create separate chunks export default { input: 'src/index.js', output: { dir: 'dist', format: 'es', chunkFileNames: 'chunks/[name]-[hash].js', }, plugins: [resolve(), commonjs()], };
Best Practices
- Mark peer dependencies as
to avoid bundling themexternal - Enable sourcemaps for debugging; disable in production if not needed
- Use
insideEffects: false
to enable maximum tree shakingpackage.json - For large dependencies, externalize them to reduce bundle size
- Use code splitting with dynamic
for on-demand loadingimport()
Reference
- Official documentation: https://rollupjs.org/
Keywords
rollup, bundler, ESM, CJS, tree-shaking, code splitting, library bundling, plugins