Creating Rails applications with esbuild bundling
The rails new --javascript=esbuild
command creates Rails applications optimized for modern JavaScript development through esbuild's revolutionary performance. esbuild is 10-100x faster than traditional JavaScript bundlers, making it the recommended choice for most Rails applications requiring JavaScript transpilation.
Why esbuild excels for Rails development
esbuild is written in Go and compiles to native code, while most other bundlers are written in JavaScript. This fundamental difference means instant feedback loops with sub-second compilation times that maintain developer flow.
Zero-configuration TypeScript and JSX support eliminates complex setup traditionally required for modern JavaScript features. esbuild handles TypeScript transpilation and JSX transformation out of the box, enabling React development without configuration overhead.
What the Rails generator configures
The generator automatically adds jsbundling-rails to your Gemfile, configures package.json with build scripts, and sets up ./bin/dev
for concurrent Rails server and esbuild watch mode. Node.js and Yarn must be installed when using esbuild.
Performance advantages
esbuild uses Go's shared memory between threads and parallel garbage collection, while JavaScript has separate heaps per thread. This architecture enables parallel processing that leverages multi-core systems effectively.
Benchmark tests show esbuild bundling 10 copies of three.js in under a second, compared to webpack's 41+ seconds.
When to choose esbuild
Choose esbuild for applications requiring TypeScript, JSX, or npm packages with fast development cycles. It provides the best balance of modern JavaScript capabilities and build speed for most Rails applications.