text-replace-html-webpack-plugin
![CircleCI](https://circleci.com/gh/rushil94/text-replace-html-webpack-plugin.svg?style=svg)
This package is intended to be used along with html-webpack-plugin. It can be used to replace text in the html file created by the html-webpack-plugin during the webpack build process. Works only wth webpack@^4
Might be used to import gzipped files (eg. bundle.js.gz) instead of .js (bundle.js) in the index.html generated by HtmlWebpackPlugin.
Installation
Install with npm:
npm install --save-dev text-replace-html-webpack-plugin
Basic Usage
Add plugin to webpack config plugins
. And pass the replacementArray.
const HtmlWebPackPlugin = require("html-webpack-plugin");
var CompressionPlugin = require('compression-webpack-plugin');
const TextReplaceHtmlWebpackPlugin = require('text-replace-html-webpack-plugin');
const path = require('path');
const htmlWebpackPlugin = new HtmlWebPackPlugin({
template: path.resolve(__dirname, 'index.html'),
filename: "index.html"
});
module.exports = {
mode : 'production',
output: {
path: path.resolve(__dirname, 'output'),
filename: '[name].js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
]
},
plugins: [
htmlWebpackPlugin,
new CompressionPlugin({
filename: "[path].gz[query]",
algorithm: "gzip",
test: /\.js$|\.css$|\.html$/
}
),
new TextReplaceHtmlWebpackPlugin({ replacementArray : [
{
regex : /abcd/ig,
replace : 'xyz'
},
{
regex : /js/ig,
searchString : 'def',
replace : (match) => match + '.gz'
},
{
searchString : 'def',
replace : 'aaa'
},
{
searchString : '/index/ig',
replace : 'newIndex'
}
]
}),
]
};