Replace content in file in webpack workflow
Edit file by replacing content at different build step in a webpack workflow.
For example, you can change text color, text content or also insert configuration values from environment variables.
npm i webpack-content-replacer-pluginRequire webpack-content-replacer-plugin
var ContentReplacerWebpackPlugin = require('webpack-content-replacer-plugin')Add the plugin to your plugin list
var config = {
plugins: [
new ContentReplacerWebpackPlugin({
modifiedFile: './relative_path/file_to_be_modified.ext',
modifications: [
{
regex: /%content_to_be_deleted%/g,
modification: 'new_content',
},
{
regex: /%content2_to_be_deleted%/g,
modification: 'new_content2',
},
],
})
]
}- Type:
String - Default: no default value
- Required: true
Specify the file which will be modified.
Example:
var config = {
plugins: [
new ContentReplacerWebpackPlugin({
modifiedFile: './build/index.html',
...
})
]
}- Type:
Array<Modification> - Default: no default value
- Required: true
Specify the modifications to be applied to the file.
Example:
var config = {
plugins: [
new ContentReplacerWebpackPlugin({
modifiedFile: './build/index.html',
[
{
regex: /text/g,
modification: 'new text'
}
],
...
})
]
}- Type:
Object - Default: no default value
- Required: true
Example:
{
regex: /text/g,
modification: 'new text'
}- Type:
String - Default:
after-emit - Allowed values:
after-emit,done
Specify webpack build step (c.f plugin documentation).
Example:
var config = {
plugins: [
new ContentReplacerWebpackPlugin({
modifiedFile: './build/index.html',
[
{
regex: /text/g,
modification: 'new text'
}
],
buildTrigger: 'done',
...
})
]
}- Type:
String - Default:
strict - Allowed value:
strict,log,nonestrict: catch errors in an exception, the webpack build crasheslog: log errors in a log file (warning.log) and none behaviornone: show errors in console (when silent mode is off)
Specify behavior when the plugin fail.
Example:
var config = {
plugins: [
new ContentReplacerWebpackPlugin({
modifiedFile: './build/index.html',
[
{
regex: /text/g,
modification: 'new text'
}
],
buildTrigger: 'done',
logLevel: 'log'
...
})
]
}- Type:
Boolean - Default:
false
Display/hide info logs during the build.
Example:
var config = {
plugins: [
new ContentReplacerWebpackPlugin({
silent: true,
modifiedFile: './build/index.html',
[
{
regex: /text/g,
modification: 'new text'
}
],
buildTrigger: 'done'
],
})
]
}git clone https://github.com/{your fork}/webpack-content-replacer-plugin.git
cd webpack-content-replacer-plugin/
npm installReplace {your fork} by your github username.
If you'd like to contribute, please fork the repository and use a feature
branch. All contributions are welcome. Please make a pull request and make sure things still pass after running npm test.
Ensure you've read the contribution guidelines for more information and respect the code of conduct
Thanks goes to these wonderful people (emoji key):
Sebastien Correaud 🚇 💻 📖 |
YQBird 📖 |
|---|
This project follows the all-contributors specification. Contributions of any kind welcome!
The code in this project is licensed under MIT license.
