razzle-config-utils v0.1.0
razzle-config-utils
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!
API
Plugins
getPluginIndex
Retrieves plugin's index in webpack configuration or returns null
Parameters
Returns (number | null)
isPluginLoaded
Checks if plugin is loaded
Parameters
Returns boolean
modifyPlugin
Modifies webpack plugin in place.
Parameters
config
Object webpack configurationname
string Plugin namefn
modifyPluginFn
Examples
modifyPlugin(appConfig, 'StartServerPlugin', (plugin) => {
plugin.options.nodeArgs = ['--inspect']
})
- Throws any an exception if it cannot find requested plugin
Returns any result of the callback
replacePlugin
Replaces webpack plugin. If the plugin cannot be found, it's ignored.
Parameters
config
Object webpack configurationname
string Plugin nameplugin
fn
modifyPluginFn
Examples
replacePlugin(appConfig, 'UglifyJsPlugin', new MinifyPlugin())
Returns any plugin
Rules
getRuleIndexByTest
Retrieves rule's index in webpack configuration by test property
Parameters
Returns (number | null)
getRuleIndexByLoader
Retrieves rule's index in webpack configuration by loader. Returns first found result.
Parameters
Returns (number | null)
modifyRule
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 any an exception if it cannot find requested rule
Returns any result of the callback
replaceRule
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
config
Object webpack configuration$1
Object$1.test
$1.loader
rule
fn
modifyRuleFn
Examples
replaceRule(appConfig, { test: /\.css$/ }, {
test: /\.s?css/,
use: [
// ... etc
]
})
Returns any rule
ignoreFileExtension
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
config
Object webpack configurationextension
RegExp file extensionfn
modifyRuleFn
Examples
ignoreFileExtension(appConfig, /\.hbs$/)
Returns any rule
modifyPluginFn
Function that will be invoked with found plugin
Type: Function
Parameters
modifyRuleFn
Function that will be invoked with found rule.
Type: Function
Parameters