There are plenty of great reasons to switch to Webpacker, including improvements in supported syntax, development tooling, performance optimizations, and more. For Rails developers considering the upgrade from the Rails asset pipeline, start here.
Struggling to get webpack to do what you want?
Terrified of making changes to your config?
Does the thought of migrating from Sprockets to Webpacker make you want to cry?
Why is this so difficult?
Webpack configuration lacks the developer friendliness we know and love in Rails. It's no secret, webpack is a capricious beast. Webpacker aims to reduce the overhead in getting up-and-running with webpack, but there's still some basics you're forced to learn.
The JS community moves at a fast pace making it difficult to keep up. Babel, PostCSS, browserlist, React, Vue, Angular, Stimulus, webpack, node modules, NPM, yarn, argggghhhhh!!!
There's a lack of information for Rails developers—there's (currently) no official Rails guide for Webpacker! No fear, I'm here to help fill the gap.
Coming Soon! The Webpacker Survival Guide
I'm putting together resources to help Rails developers master modern frontend development with Rails, starting with The Webpacker Survival Guide.
The Webpacker Survival Guide is broken into iterative modules, each building on the previous, to ensure you're covered from the basics to more advanced features. The course applies to Rails 4.2 through Rails 6.0 and Webpacker 4.0 through 6.0 (pending release).
Install and upgrade Webpacker
Learn how to hook up your Rails app with both the Webpacker gem and the NPM package.
Organize your code
Managing your source code works a little differently in Webpacker than with the Rails asset pipeline. Make sure you don't make common mistakes like "overpacking."
Babel? Browserlist? Webpacker supports transpiling from the latest EcmaScript syntax to legacy formats your supported browsers will understand. Learn how it all works.
Use Webpacker for CSS and images
Yes, you can! The developer experience is still a work-in-progress, but it doesn't have to be overwhelming. Learn a few basic tips will help clear up the confusion.
Debug the compiled output
Deploy Webpacker-compiled assets
Make your hard-earned source code available to your users in production.
Migrate to Sprockets gracefully
Moving your source code to Webpacker doesn't have to be a superhuman effort. Save time and resources with my migration guide.
Optimize your webpack bundles
Can't wait? This site has a ton of free content to help you get started.
A case study of Rails applications making a common Webpacker mistake of rendering modules multiple times on a single page. We'll describe why the problem happens and present a Webpacker Packing Checklist for proper code-splitting.
Navigate the world of Webpacker and webpack on Rails with confidence using this collection of mental maps I put together.
In this post, we describe the challenges we faced while replacing the Rails asset pipeline with webpack, how we solved those issues, and what we learned along the way.
The missing guide
Configuring webpack is precisely the main job of Webpacker's NPM package, @rails/webpacker. This post provides an overview of how to customize its default settings for your Rails application.
Configuring Webpacker can be a daunting task. In this guide, we will take a look at the options provided via the webpacker.yml file and supported environment variable overrides.
A reference guide to NPM version constraints for dependencies declared in the package.json file of a Rails project from the perspective of a Ruby developer familiar with similar conventions used to specify Ruby dependencies in a Gemfile.
This time we'll walk through the steps for integrating Bootstrap 4 with Rails and Webpacker 4.
When running Rails system or integration tests, you might be surprised to learn that Webpacker will load your development webpack config. What's the deal?
A new Rails 6 application will install both Webpacker and Sprockets by default. Don't they solve the same problem? This article dives into why Sprockets lives on even though webpack has surpassed most of its features and why you might want to choose one over the other.
Upgrading jQuery plugins to work with webpack is a common source of confusion. If you're lucky, you may find they can work in either context such that you might not need jQuery at all.
When I first started working with webpack, I was in for a few surprises. I assumed how things should behave, based on my previous experience with the Rails asset pipeline, only to learn through experience how I was wrong.
In this post, we'll take a look at installing and using the webpack-bundle-analyzer, perhaps the most invaluable webpack plugin, to analyze and debug the output of the webpack build in a Rails project configured to use Webpacker.
Understanding your Rails webpack configuration and build output can be a little confusing, especially if you're new to either Rails or webpack. This post contains a few tips for debugging your Webpacker setup, some specific to Rails Webpacker, some generally applicable to webpack.