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-plugin
Require 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
,none
strict
: 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 install
Replace {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.