esbuild-plugin-babel
esbuild-rails
esbuild-plugin-babel | esbuild-rails | |
---|---|---|
2 | 3 | |
66 | 174 | |
- | - | |
10.0 | 4.8 | |
over 1 year ago | 11 months ago | |
JavaScript | JavaScript | |
ISC License | MIT License |
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.
esbuild-plugin-babel
-
How do i get PrismJS working with phoenix?
As mentioned the frameworks have gone through some changes since then. Babel is hardly ever used these days, esbuild doesn't pick up the babel config automatically. If you're using the default esbuild config generated with a modern phx_new version, look into changing it to a custom build script in https://hexdocs.pm/phoenix/asset_management.html#esbuild-plugins and then integrate something like this plugin https://github.com/nativew/esbuild-plugin-babel to be able to run https://github.com/mAAdhaTTah/babel-plugin-prismjs. There is a comment at the bottom of the tutorial of someone getting it to work with live view by listening for a phx page loading event, but the more idiomatic way these days would be to use a hook.
-
Configure Stimulus with esbuild and Babel — Rails & Javascript
// config/esbuild.mjs import path from 'path' import esbuild from 'esbuild' import rails from 'esbuild-rails' import babel from 'esbuild-plugin-babel' esbuild .build({ bundle: true, // Path to application.js folder absWorkingDir: path.join(process.cwd(), 'app/javascript'), // Application.js file, used by Rails to bundle all JS Rails code entryPoints: ['application.js'], // Destination of JS bundle, points to the Rails JS Asset folder outdir: path.join(process.cwd(), 'app/assets/builds'), // Enables watch option. Will regenerate JS bundle if files are changed watch: process.argv.includes('--watch'), // Split option is disabled, only needed when using multiple input files // More information: https://esbuild.github.io/api/#splitting (change it if using multiple inputs) splitting: false, chunkNames: 'chunks/[name]-[hash]', // Remove unused JS methods treeShaking: true, // Adds mapping information so web browser console can map bundle errors to the corresponding // code line and column in the real code // More information: https://esbuild.github.io/api/#sourcemap sourcemap: process.argv.includes('--development'), // Compresses bundle // More information: https://esbuild.github.io/api/#minify minify: process.argv.includes('--production'), // Removes all console lines from bundle // More information: https://esbuild.github.io/api/#drop drop: process.argv.includes('--production') ? ['console'] : [], // Build command log output: https://esbuild.github.io/api/#log-level logLevel: 'info', // Set of ESLint plugins plugins: [ // Plugin to easily import Rails JS files, such as Stimulus controllers and channels // https://github.com/excid3/esbuild-rails rails(), // Configures bundle with Babel. Babel configuration defined in babel.config.js // Babel translates JS code to make it compatible with older JS versions. // https://github.com/nativew/esbuild-plugin-babel babel() ] }) .catch(() => process.exit(1))
esbuild-rails
-
Is the default importmap method unrealistic in the most popular real world use cases?
Here's the setup I use for reloading with esbuild: https://github.com/excid3/esbuild-rails/blob/main/examples/esbuild.config.mjs
-
Configure Stimulus with esbuild and Babel — Rails & Javascript
// config/esbuild.mjs import path from 'path' import esbuild from 'esbuild' import rails from 'esbuild-rails' import babel from 'esbuild-plugin-babel' esbuild .build({ bundle: true, // Path to application.js folder absWorkingDir: path.join(process.cwd(), 'app/javascript'), // Application.js file, used by Rails to bundle all JS Rails code entryPoints: ['application.js'], // Destination of JS bundle, points to the Rails JS Asset folder outdir: path.join(process.cwd(), 'app/assets/builds'), // Enables watch option. Will regenerate JS bundle if files are changed watch: process.argv.includes('--watch'), // Split option is disabled, only needed when using multiple input files // More information: https://esbuild.github.io/api/#splitting (change it if using multiple inputs) splitting: false, chunkNames: 'chunks/[name]-[hash]', // Remove unused JS methods treeShaking: true, // Adds mapping information so web browser console can map bundle errors to the corresponding // code line and column in the real code // More information: https://esbuild.github.io/api/#sourcemap sourcemap: process.argv.includes('--development'), // Compresses bundle // More information: https://esbuild.github.io/api/#minify minify: process.argv.includes('--production'), // Removes all console lines from bundle // More information: https://esbuild.github.io/api/#drop drop: process.argv.includes('--production') ? ['console'] : [], // Build command log output: https://esbuild.github.io/api/#log-level logLevel: 'info', // Set of ESLint plugins plugins: [ // Plugin to easily import Rails JS files, such as Stimulus controllers and channels // https://github.com/excid3/esbuild-rails rails(), // Configures bundle with Babel. Babel configuration defined in babel.config.js // Babel translates JS code to make it compatible with older JS versions. // https://github.com/nativew/esbuild-plugin-babel babel() ] }) .catch(() => process.exit(1))
-
Live reloading with Ruby on Rails and esbuild
Finally, if you're using esbuild with Rails and Stimulus, you'll probably find the esbuild-rails plugin from Chris Oliver useful.
What are some alternatives?
babel-plugin-prismjs - A babel plugin to use PrismJS with standard bundlers.
importmap-rails - Use ESM with importmap to manage modern JavaScript in Rails without transpiling or bundling.
browserslist - 🦔 Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-preset-env
vite_ruby - ⚡️ Vite.js in Ruby, bringing joy to your JavaScript experience
Highlight.js - JavaScript syntax highlighter with language auto-detection and zero dependencies.
hotwire-livereload - Live reload gem for Hotwire Rails apps.
esbuild - An extremely fast bundler for the web
esbuild-plugin-alias - esbuild plugin for path aliases
jsbundling-rails - Bundle and transpile JavaScript in Rails with esbuild, rollup.js, or Webpack.
Foreman - Manage Procfile-based applications
Webpacker - Use Webpack to manage app-like JavaScript modules in Rails