Need advice about which tool to choose?Ask the StackShare community!

Webpack

39.9K
27K
+ 1
752
Webpacker

129
48
+ 1
0
Add tool

Webpack vs Webpacker: What are the differences?

Introduction

Webpack and Webpacker are both popular JavaScript bundlers used in web development. While they serve a similar purpose, there are key differences between the two.

  1. Architecture: Webpack is a standalone module bundler for JavaScript applications, allowing developers to create a dependency graph and package their code into a single or multiple bundles. On the other hand, Webpacker is a gem that integrates Webpack into Ruby on Rails applications, providing a streamlined process for using Webpack in Rails projects.

  2. Configuration: Webpack offers a more flexible configuration setup, allowing developers to define custom loaders, plugins, and other build-related settings in a dedicated configuration file, typically named webpack.config.js. Webpacker, on the other hand, simplifies the configuration process by using convention over configuration. It sets up a default configuration file that handles common use cases automatically, reducing the need for explicit configuration.

  3. Asset Pipeline Integration: Webpacker is designed to work specifically with Ruby on Rails' asset pipeline. It integrates seamlessly with the pipeline, allowing developers to compile and manage JavaScript assets within the Rails application structure. Webpack, on the other hand, is language-agnostic and can be used with any web framework or project that requires JavaScript bundling.

  4. Hot Module Replacement (HMR): Webpack comes with built-in support for Hot Module Replacement, a feature that allows modules to be updated without requiring a full page reload during development. It provides a smoother development experience by instantly reflecting changes in the browser. Webpacker also supports HMR, but as a Rails-specific feature, it requires additional configuration to set up.

  5. Development Environment: Webpack offers a standalone development server, allowing developers to run their applications locally during development. This server provides features like live reloading, hot module replacement, and an easy way to test and debug web applications. Webpacker, being integrated into the Rails ecosystem, leverages the existing development server provided by Rails, making it more aligned with the Rails development workflow.

  6. Plugins and Loaders: Webpack supports a vast ecosystem of plugins and loaders contributed by the community, offering a wide range of functionality to extend its core capabilities. Additionally, developers have the flexibility to define and use their own custom plugins and loaders. Webpacker, although built on top of Webpack, may have limited compatibility with certain Webpack plugins and loaders due to differences in configuration and integration.

In summary, Webpack is a highly customizable standalone bundler suitable for various web projects, while Webpacker is a Rails-specific integration of Webpack that simplifies the configuration and asset management process within the Ruby on Rails ecosystem.

Decisions about Webpack and Webpacker
Rob Murphy
Chose
ViteVite
over
WebpackWebpack
at
()

The developer experience Webpack gave us was not delighting anyone. It works and is stable and consistent. It is also slow and frustrating. We decided to check out Vite as an alternative when moving to Vue 3 and have been amazed. It is very early in development and there are plenty of rough edges, but it has been a breath of fresh air not waiting for anything to update. It is so fast we have found ourselves using devtools in browser less because changing styles is just as fast in code. We felt confident using the tool because although it is early in its development, the production build is still provided by Rollup which is a mature tool. We also felt optimistic that as good as it is right now, it will only continue to get better, as it is being worked on very actively. So far we are really happy with the choice.

See more
Aleksandr Filatov
Contract Software Engineer - Microsoft · | 4 upvotes · 280.7K views
Why migrated?

I could define the next points why we have to migrate:

  • Decrease build time of our application. (It was the main cause).
  • Also jspm install takes much more time than npm install.
  • Many config files for SystemJS and JSPM. For Webpack you can use just one main config file, and you can use some separate config files for specific builds using inheritance and merge them.
See more

We mostly use rollup to publish package onto NPM. For most all other use cases, we use the Meteor build tool (probably 99% of the time) for publishing packages. If you're using Node on FHIR you probably won't need to know rollup, unless you are somehow working on helping us publish front end user interface components using FHIR. That being said, we have been migrating away from Atmosphere package manager towards NPM. As we continue to migrate away, we may publish other NPM packages using rollup.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Webpack
Pros of Webpacker
  • 309
    Most powerful bundler
  • 182
    Built-in dev server with livereload
  • 142
    Can handle all types of assets
  • 87
    Easy configuration
  • 22
    Laravel-mix
  • 4
    Overengineered, Underdeveloped
  • 2
    Makes it easy to bundle static assets
  • 2
    Webpack-Encore
  • 1
    Redundant
  • 1
    Better support in Browser Dev-Tools
    Be the first to leave a pro

    Sign up to add or upvote prosMake informed product decisions

    Cons of Webpack
    Cons of Webpacker
    • 15
      Hard to configure
    • 5
      No clear direction
    • 2
      Spaghetti-Code out of the box
    • 2
      SystemJS integration is quite lackluster
    • 2
      Loader architecture is quite a mess (unreliable/buggy)
    • 2
      Fire and Forget mentality of Core-Developers
      Be the first to leave a con

      Sign up to add or upvote consMake informed product decisions

      What is Webpack?

      A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows to load parts for the application on demand. Through "loaders" modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.

      What is Webpacker?

      Webpacker makes it easy to use the JavaScript preprocessor and bundler Webpack to manage application-like JavaScript in Rails. It coexists with the asset pipeline, as the purpose is only to use Webpack for app-like JavaScript, not images, css, or even JavaScript Sprinkles (that all continues to live in app/assets).

      Need advice about which tool to choose?Ask the StackShare community!

      What companies use Webpack?
      What companies use Webpacker?
      See which teams inside your own company are using Webpack or Webpacker.
      Sign up for StackShare EnterpriseLearn More

      Sign up to get full access to all the companiesMake informed product decisions

      What tools integrate with Webpack?
      What tools integrate with Webpacker?

      Sign up to get full access to all the tool integrationsMake informed product decisions

      What are some alternatives to Webpack and Webpacker?
      gulp
      Build system automating tasks: minification and copying of all JavaScript files, static images. More capable of watching files to automatically rerun the task when a file changes.
      Babel
      Babel will turn your ES6+ code into ES5 friendly code, so you can start using it right now without waiting for browser support.
      Parcel
      Parcel is a web application bundler, differentiated by its developer experience. It offers blazing fast performance utilizing multicore processing, and requires zero configuration.
      Browserify
      Browserify lets you require('modules') in the browser by bundling up all of your dependencies.
      Grunt
      The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc, the easier your job becomes. After you've configured it, a task runner can do most of that mundane work for you—and your team—with basically zero effort.
      See all alternatives