razzle-config-utils is a set of utilities for razzle.config.js
If there's a snippet of code that you keep reusing in your own razzle config, consider sending a pull request!
Retrieves plugin's index in webpack configuration or returns null
Parameters
Returns (number | null)
Checks if plugin is loaded
Parameters
Returns boolean
Modifies webpack plugin in place.
Parameters
config
Object webpack configurationname
string Plugin namefn
modifyPluginFn
Examples
modifyPlugin(appConfig, 'StartServerPlugin', (plugin) => {
plugin.options.nodeArgs = [Object']plugin - Plugin
})
- Throws Error an exception if it cannot find requested plugin
Returns any result of the callback
Replaces webpack plugin. If the plugin cannot be found, it's ignored.
Parameters
config
Object webpack configurationname
string Plugin nameplugin
Object Plugin instance (ex. new MinifyPlugin())
Examples
replacePlugin(appConfig, 'UglifyJsPlugin', new MinifyPlugin())
Returns any plugin
Callback that will be invoked with found plugin.
Type: Function
Parameters
Retrieves rule's index in webpack configuration by test property
Parameters
Returns (number | null)
Retrieves rule's index in webpack configuration by loader. Returns first found result.
Parameters
Returns (number | null)
Modifies webpack rule in place. You can pass either test property
(ex. { test: /\.css$/ })
or loader (ex. { loader: 'css-loader' }
)`
to the second argument.
Parameters
config
Object webpack configurationrule
Object webpack rulefn
modifyRuleFn
Examples
modifyRule(appConfig, { test: /\.css$/ }, (rule) => {
rule.test = /\.s?css/
rule.use.push({ loader: 'scss-loader' })
})
- Throws Error an exception if it cannot find requested rule
Returns any result of the callback
Replaces webpack rule. You can pass either test property
(ex. { test: /\.css/ })
or loader (ex. { loader: 'css-loader' }
)`
to the second argument. If the rule cannot be found, it's ignored.
Parameters
Examples
replaceRule(appConfig, { test: /\.css$/ }, {
test: /\.s?css/,
use: [
// ... etc
]
})
Returns any rule
Adds file extension to the list of extensions ignored by file-loader This is useful if you're adding support for something that Razzle does not support yet (SASS/Less, Handlebars, you name it)
Parameters
Examples
ignoreFileExtension(appConfig, /\.hbs$/)
Returns any rule
Callback that will be invoked with found rule.
Type: Function
Parameters