Rollup VS webpack

Compare Rollup vs webpack and see what are their differences.

Rollup

Next-generation ES module bundler (by rollup)

webpack

A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff. (by webpack)
Our great sponsors
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • Scout APM - Less time debugging, more time building
  • OPS - Build and Run Open Source Unikernels
Rollup webpack
22 134
21,112 60,261
0.9% 0.7%
9.3 9.8
about 7 hours ago 4 days ago
JavaScript JavaScript
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Rollup

Posts with mentions or reviews of Rollup. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-01-03.
  • Configuring CommonJS & ES Modules for Node.js
    6 projects | dev.to | 3 Jan 2022
    This also means that whatever build tooling must produce the distribution file with a .cjs file extension. This might necessitate chaining multiple build tools or adding a subsequent step to move/rename the file to have the .cjs file extension (ex mv ./dist/index.js ./dist/index.cjs)3. This can be worked around by adding a subsequent step to move/rename those outputted files (ex Rollup or a simple shell script).
  • Make SvelteKit bundle all *.ts files into a single bundle.js
    1 project | reddit.com/r/sveltejs | 1 Jan 2022
    I think Rollup is where the code-splitting is happening so you will need to address the problem there. Here is an ongoing discussion that seems to have some solutions: https://github.com/rollup/rollup/issues/2756
  • Vite, the hassle-free alternative to Webpack
    4 projects | dev.to | 12 Nov 2021
    Vite doesn't create itself the bundles. Under the hood, it uses two tools: Esbuild while you're developing, and Rollup.js to create the production bundle.
  • Rakkas: Next.js alternative powered by Vite
    13 projects | dev.to | 14 Oct 2021
    If you're not familiar with Vite, it's an instance of a new class of tools, sometimes called non-bundlers, that leverage modern browsers' native EcmaScript modules support to do away with the bundling during development. This results in instant server start and much faster updates than traditional bundlers like Webpack, Rollup, or Parcel. These new tools (another example is Snowpack) improve developer experience so much that, once you try, you will never want to go back to your old tooling.
  • The Ultimate Guide to Getting Started with the Rollup.js JavaScript Bundler
    5 projects | dev.to | 6 Oct 2021
    Rollup.js is a Node.js module bundler most often used for client-side JavaScript running in the browser. (You can bundle Node.js scripts but there are fewer reasons to do so). The tool compiles all your JavaScript source files into a single bundle for inclusion in your production web pages.
  • Major updates for bundle.js.org v0.0.3
    9 projects | dev.to | 19 Sep 2021
    I used monaco-editor for the code-editor, esbuild and rollup as bundler and treeshaker respectively, pako as a js port of the zlib and gzip libraries, pretty-bytes to convert the gzip size to human readable values, and countapi-js to keep track of the number of page visits, in a private and secure way.
  • Introducing Magic URL Login to Appwrite
    4 projects | dev.to | 7 Sep 2021
    If you're using a bundler (like Rollup or webpack), you can import the Appwrite module when you need it:
  • Created CLI Tool that Creates/Remove GitHub Labels
    13 projects | dev.to | 31 Aug 2021
    Export as a javascript module, making your work fully tree-shakable for consumers capable of using es6 imports (like Rollup, Webpack, or Parcel)
  • What does it take to support Node.js ESM?
    9 projects | dev.to | 12 Aug 2021
    There are workarounds, but nothing actually works in 100% of the possible use-cases (see for example, ts-jest issue), and for that reason, we recommend tooling that enables this type of building without needing any workaround, usually using Rollup and/or esbuild.
  • [AskJS] How can i structure my js library?
    4 projects | reddit.com/r/javascript | 20 Jul 2021
    I agree, although, at this point, it might be better to use a bundler that uses ESM in the final bundle like Vite, Rollup, or Snowpack. Rollup works better for libraries than Webpack, at least in my opinion.

webpack

Posts with mentions or reviews of webpack. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-01-09.
  • How to Use Amplify Studio Figma Connector with Clojurescript
    6 projects | dev.to | 9 Jan 2022
    const path = require("path"); const webpack = require("webpack"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const HtmlBeautifierPlugin = require("html-beautifier-webpack-plugin"); module.exports = { mode: "development", entry: "./target/index.js", output: { path: path.resolve(__dirname, "public"), filename: "js/libs/bundle.js", clean: false, }, devtool: "source-map", module: { rules: [ { // docs: https://webpack.js.org/configuration/module/#resolvefullyspecified test: /\.m?js/, resolve: { fullySpecified: false, alias: { models: "../src/amplify/models/index.js", "ui-components": "../src/amplify/ui-components", }, }, }, { test: /\.jsx$/, exclude: /node_modules/, use: ["babel-loader"], }, ], }, resolve: { extensions: ["", ".js", ".jsx"], }, plugins: [ new webpack.ProvidePlugin({ process: "process/browser", }), new HtmlWebpackPlugin({ template: "./public/index.html.tmpl", filename: "index.html", }), new HtmlBeautifierPlugin(), ], };
  • Code Splitting with dynamic imports
    1 project | dev.to | 9 Jan 2022
    When your module bundler (I'm using Webpack for this example) encounters a dynamic import, it bundles the module as a separate file.
  • Package your NodeJS Lambda functions individually with esbuild for faster cold-start times
    7 projects | dev.to | 4 Jan 2022
    I've used webpack before for bundling, and while it is a mature and flexible bundler, you may run into problems with its memory usage and execution when you use it on very large projects with dozens of AWS Lambda functions. This is because it is written in JavaScript and must execute the same bundling process for each Lambda function.
  • Configuring CommonJS & ES Modules for Node.js
    6 projects | dev.to | 3 Jan 2022
    Note that generating CJS output with named exports from ESM is not currently possible with Webpack (support is pending Webpack PR#14998); it's not possible with esbuild (which, like Webpack, produces a non-static exports). However, Rollup DOES produce compatible output; the working example below uses Rollup instead of Webpack.
  • My FrontEnd Stack
    6 projects | dev.to | 2 Jan 2022
  • What JS is essential before learning React?
    1 project | reddit.com/r/reactjs | 28 Dec 2021
    That much is pretty easy, the hard part is deep diving into bundlers like Webpack, which make modular programming in Javascript possible. Create React App hides some of the complexity and lets you get started writing a React app quickly, but if you're not using CRA then learning about bundling and transpiling can send you down a pretty deep rabbit hole of topics to learn.
  • How to update a NodeJS TypeScript library for ESM-compliance?
    5 projects | reddit.com/r/typescript | 22 Dec 2021
  • Part 2/2 - Game in ReactJS - Cuzzle
    10 projects | dev.to | 21 Dec 2021
    Create React App (CRA): This is a library that I have used previously for other games/projects, this is an easy starting point for a react project because we have all our environment configured, for example, we have webpack, hot reloading, service workers (via workbox) and other features ready to be used, for this type of project I think is the best way to learn React.
  • Building a Webpack alternative in F#
    14 projects | dev.to | 16 Dec 2021
    At the time I had been exploring alternatives to Webpack like fuse-box, parcel, and esbuild. Around the same time I was made aware aware that browsers had already implemented [ESM modules], so technically as long as you produced HTML, CSS, and JS you didn't need any kind of pre-processing at all.
  • Issue importing from my React component library
    1 project | reddit.com/r/node | 15 Dec 2021

What are some alternatives?

When comparing Rollup and webpack you can also consider the following projects:

esbuild - An extremely fast JavaScript and CSS bundler and minifier

craco - Create React App Configuration Override, an easy and comprehensible configuration layer for create-react-app

vite - Next generation frontend tooling. It's fast!

Snowpack - ESM-powered frontend build tool. Instant, lightweight, unbundled development. ✌️

parcel - The zero configuration build tool for the web. 📦🚀

gulp - A toolkit to automate & enhance your workflow

react-app-rewired - Override create-react-app webpack configs without ejecting