JsonMinimizerWebpackPlugin
Disclaimer: JsonMinimizerWebpackPlugin is a third-party package maintained by community members, it potentially does not have the same support, security policy or license as webpack, and it is not maintained by webpack.
This plugin uses JSON.stringify() to minify your JSON files during the build process.
Getting Started
To begin, you'll need to install json-minimizer-webpack-plugin:
npm install json-minimizer-webpack-plugin --save-dev
or
yarn add -D json-minimizer-webpack-plugin
or
pnpm add -D json-minimizer-webpack-plugin
Then add the plugin to your webpack configuration. For example:
webpack.config.js
const CopyPlugin = require("copy-webpack-plugin");
const JsonMinimizerPlugin = require("json-minimizer-webpack-plugin");
module.exports = {
module: {
rules: [
{
test: /\.json$/i,
type: "asset/resource",
},
],
},
plugins: [
new CopyPlugin({
patterns: [
{
context: path.resolve(__dirname, "dist"),
from: "./src/*.json",
},
],
}),
],
optimization: {
minimize: true,
minimizer: [
// For webpack@5 you can use the `...` syntax to extend existing minimizers (i.e. `terser-webpack-plugin`), uncomment the next line
// `...`
new JsonMinimizerPlugin(),
],
},
};Finally, run webpack using the method you normally use (e.g., via CLI or an npm script).
Options
test
Type:
type test = string | RegExp | (string | RegExp)[];Default: /\.json(\?.*)?$/i
Test to match files against.
module.exports = {
optimization: {
minimize: true,
minimizer: [
new JsonMinimizerPlugin({
test: /\.foo\.json/i,
}),
],
},
};include
Type:
type include = string | RegExp | (string | RegExp)[];Default: undefined
Files to include for minimization.
webpack.config.js
module.exports = {
optimization: {
minimize: true,
minimizer: [
new JsonMinimizerPlugin({
include: /\/includes/,
}),
],
},
};exclude
Type:
type exclude = string | RegExp | (string | RegExp)[];Default: undefined
Files to exclude from minimization.
webpack.config.js
module.exports = {
optimization: {
minimize: true,
minimizer: [
new JsonMinimizerPlugin({
exclude: /\/excludes/,
}),
],
},
};minimizerOptions
Type:
interface minimizerOptions {
space?: null | string | number;
replacer?: null | Function | (string | number)[];
}Default: { replacer: null, space: null }
JSON.stringify() options.
module.exports = {
optimization: {
minimize: true,
minimizer: [
new JsonMinimizerPlugin({
minimizerOptions: {
space: "\t",
},
}),
],
},
};Contributing
We welcome all contributions! If you're new here, please take a moment to review our contributing guidelines before submitting issues or pull requests.
License
« Previous
ImageMinimizerWebpackPluginNext »
MiniCssExtractPlugin
