Embedded Ruby (`.erb`) `webpack` loader for Ruby projects.
npm install rails-erb-loader




> Embedded Ruby (.erb) webpack loader for Ruby projects.
Compiles Embedded Ruby template files in any Ruby project. Files are built using either the Erubis or ERB gem.
``console`
$ npm install rails-erb-loader --save-dev
`console`
$ yarn add -D rails-erb-loader
Add rails-erb-loader to your rules.
`js
// webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.erb$/,
enforce: 'pre',
loader: 'rails-erb-loader'
},
]
}
}
};
`
Now you can use .erb files in your project, for example:
app/assets/javascripts/UserFormFields.jsx.erb`erb
/ rails-erb-loader-dependencies models/user models/image /
export default function UserFormFields() {
return (
Configuration
$3
Can be configured with UseEntry#options.
| Option | Default | Description |
| ------ | ------- | ----------- |
|
dependenciesRoot | "app" | The root of your Rails project, relative to webpack's working directory. |
| engine | "erb" | ERB Template engine, "erubi", "erubis" and "erb" are supported. |
| runner | "./bin/rails runner" | Command to run Ruby scripts, relative to webpack's working directory. |
| timeoutMs | 0 | Timeout for the runner task in milliseconds. 0 is no timeout. Set this if you want a hanging runner to error out the build. |
| env | process.env | Environment variables to be passed to runner. |For example, if your webpack process is running in a subdirectory of your Rails project:
`js
{
loader: 'rails-erb-loader',
options: {
runner: '../bin/rails runner',
dependenciesRoot: '../app',
}
}
`Also supports building without Rails:
`js
{
loader: 'rails-erb-loader',
options: {
runner: 'ruby',
engine: 'erb'
}
}
`$3
If your
.erb files depend on files in your Ruby project, you can list them explicitly. Inclusion of the rails-erb-loader-dependency (or -dependencies) comment will tell webpack to watch these files - causing webpack-dev-server to rebuild when they are changed.#### Watch individual files
List dependencies in the comment.
.rb extension is optional.`js
/ rails-erb-loader-dependencies models/account models/user /
`#### Watch a whole directory
To watch all files in a directory, end the path in a
/.`js
/ rails-erb-loader-dependencies ../config/locales/ /
``Questions, bug reports and pull requests welcome. See GitHub issues.
MIT