Sprockets vs. Webpacker

Which to choose? > You should choose Webpacker over Sprockets on a new project if you want to use NPM packages and/or want access to the most current JavaScript features and tools. You should choose Sprockets over Webpacker for legacy applications where migration might be costly, if you want to integrate using Gems, or if you have a very small amount of code to package. Sprockets vs. Webpacker concepts ``` # sprockets concept = webpacker equivalent Gemfile dependencies = npm_modules stylesheet_link_tag = stylesheet_pack_tag javascript_include_tag = javascript_pack_tag image_path = image_pack_tag asset_path = asset_pack_tag require = import or require ``` Webpacker depends on NPM (Node package manager registry) and Yarn. Example: ``` app/javascript: ├── packs: │ # only webpack entry files here │ └── application.js │ └── application.css └── src: │ └── my_component.js └── stylesheets: │ └── my_styles.css └── images: └── logo.svg ``` If you want to avoid problems, use esbuild. Reference: https://guides.rubyonrails.org/webpacker.html