Registry / web-framework / rails-vite-plugin

rails-vite-plugin

JSON →
library0.2.4jsnpmunverified

A Vite plugin for integrating Vite into Ruby on Rails applications, currently at stable version 0.2.4. It provides seamless asset pipeline integration with both Propshaft and Sprockets, supports SSR, glob patterns for entry points, and works with jsbundling-rails. Regular releases (approximately monthly) with active maintenance. Key differentiators: lightweight, no gem required in jsbundling mode, automatic entry point discovery, subresource integrity, and test mode isolation. Requires Vite >= 5.0.0 and Node >= 18.

npm install rails-vite-plugin
INSTALL
IMPORT
SIG · RAILS-VITE-PLUGIN
R
rails-vite-plugin
web-frameworkjavascriptv0.2.4
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18223 runs
build_error
glibc
node 18223 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
import rails from 'rails-vite-plugin'
const rails = require('rails-vite-plugin')
ESM-only package; CommonJS require is not supported.
RailsPluginOptions
import type { RailsPluginOptions } from 'rails-vite-plugin'
import { RailsPluginOptions } from 'rails-vite-plugin'
Type-only import; if used at runtime, remove 'type'.
default (named alias)
import { default as rails } from 'rails-vite-plugin'
import rails from 'rails-vite-plugin'; // This is correct, but named default is also possible.
Both default import and named default work.

Configures Vite with the Rails plugin, specifying source directory and entry points.

// vite.config.ts import { defineConfig } from 'vite'; import rails from 'rails-vite-plugin'; export default defineConfig({ plugins: [ rails({ version: '0.2.4', sourceDir: 'app/javascript', entrypoints: 'app/javascript/entrypoints', publicDir: 'public/vite', envDir: undefined, // Optional: for SSR ssrBuildDirectory: 'public/vite-ssr', }), ], });
Debug
Known issues
gotchaESM-only package: CommonJS require() will fail.
fix
Use ES module import syntax instead of require().
affects: >=0.1.0
breakingIn v0.2.0, jsbundling mode was introduced, which changes default behavior and may require configuration updates.
fix
Check the jsbundling mode documentation; if using jsbundling-rails, ensure you follow the correct setup.
affects: >=0.2.0
deprecatedThe old `vite_rails` gem integration is deprecated; use the standalone plugin or jsbundling mode.
fix
Migrate to jsbundling mode (no gem) or use the gem with updated config.
affects: >=0.2.0
gotchaNode >= 18 is required; older versions are not supported.
fix
Upgrade Node.js to version 18 or higher.
affects: >=0.1.0
gotchaIn development mode, asset URLs may incorrectly point to Rails server instead of Vite dev server (fixed in v0.2.1).
fix
Upgrade to v0.2.1 or later.
affects: <0.2.1
Errors
Common errors & fixes
Error: ERR_REQUIRE_ESM - require() of ES Module /path/to/rails-vite-plugin/index.js not supported.
Using CommonJS require() on an ESM-only package.
fix
Change to import statement: import rails from 'rails-vite-plugin'. Ensure your project uses ESM (type: module in package.json) or use dynamic import() if needed.
[vite] RollupError: Could not resolve entry point 'app/javascript/entrypoints/application.js' - entry paths must be relative or absolute.
Entry point path is not properly resolved; plugin expects relative paths from sourceDir.
fix
Use a relative path like './entrypoints/application.js' or ensure sourceDir and entrypoints config are correct.
TypeError: Cannot destructure property 'version' of 'rails is not a function'
Using rails() as a function but it's not imported correctly (e.g., default import not used).
fix
Ensure you do import rails from 'rails-vite-plugin' and then rails({...}) in plugins array.
Module not found: Error: Can't resolve 'vite' in ... when using rails-vite-plugin
Missing peer dependency 'vite'.
fix
Install vite: npm install vite --save-dev or yarn add vite --dev.
Upgrade
Version history
0.2.4latest on npm
Audit
Dependencies
viterequiredPeer dependency: requires Vite >= 5.0.0 to function as a plugin.
Agent activity
4 hits · last 30 days
node
4
Resources
rails-vite-plugin — npm install rails-vite-plugin · libregistry