var StringReplacePlugin = require("string-replace-webpack-plugin");
module.exports = {
module: {
loaders: [
// configure replacements for file patterns
{
test: /index.html$/,
loader: StringReplacePlugin.replace({
replacements: [
{
pattern: /<!-- @secret (\w*?) -->/ig,
replacement: function (match, p1, offset, string) {
return secrets.web[p1];
}
}
]})
}
]
},
plugins: [
// an instance of the plugin must be present
new StringReplacePlugin()
]
}
This allows for arbitrary strings to be replaced as part of the module build process. The original intent is to replace API keys in modules prior to deployment.
StringReplacePlugin.replace([nextLoaders: string], options, [prevLoaders: string])
nextLoaders
loaders to follow the replacementoptions
replacements
disables the pluginpattern
a regex to match against the file contentsreplacement
an ECMAScript string replacement function
prevLoaders
loaders to apply prior to the replacement