# What changed in html-bundler-webpack-plugin

> 24 changes in html-bundler-webpack-plugin 3 to 4 from its official release notes, upgrade guides and advisories: 6 breaking, 2 deprecations, 13 new APIs and options. Each one cited. Sources checked 2026-10-29. HTML: https://unstale.sh/npm/html-bundler-webpack-plugin/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## html-bundler-webpack-plugin 4

### Breaking changes

- Use addProcess as a class method on the plugin instance instead of through the static option property. (4.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/releases/tag/v4.0.0)
- Node.js 18 or later is supported. (4.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/releases/tag/v4.0.0)
- The plugin option property is no longer static; access it through the instance as this.option. (4.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/releases/tag/v4.0.0)
- Webpack 5.81 or later is supported. (4.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/releases/tag/v4.0.0)

### Deprecations

- watchFiles.files is deprecated; use watchFiles.includes instead. The files option remains supported. (4.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/releases/tag/v4.0.0)
- watchFiles.ignore is deprecated; use watchFiles.excludes instead. The ignore option remains supported. (4.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/releases/tag/v4.0.0)

### New APIs and options

- The plugin now supports multiple webpack configurations. (4.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/releases/tag/v4.0.0)

### Behavior and default changes

- The webpack configuration name is displayed in console output. (4.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/releases/tag/v4.0.0)

### Fixes and other changes

- Fixed an error after adding a new import file in serve/watch mode. (4.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/releases/tag/v4.0.0)
- Fixed an error when using integrity in serve/watch mode after changes made by using dynamic import. (4.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/releases/tag/v4.0.0)

## html-bundler-webpack-plugin 3

### Breaking changes

- The callback’s TemplateInfo replaces filename and verbose with name and resource, and its return type changes to string | undefined. Returning null or undefined leaves content unchanged for later hooks or callbacks. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- The postprocess callback moves from the synchronous renderManifest hook to the asynchronous processAssets hook. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)

### New APIs and options

- Adds an afterEmit hook for extending the HTML processing pipeline. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Adds an afterEmit callback option. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Adds a beforeEmit hook for extending the HTML processing pipeline. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Adds a beforeEmit callback option. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Adds a beforePreprocessor hook for extending the HTML processing pipeline. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Adds a beforePreprocessor callback option. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Adds a plugin that generates and injects favicon tags for many devices; using it requires installing favicons. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Adds a filter to preserve selected original script-tag attributes when JavaScript is inlined. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Adds a postprocess hook for extending the HTML processing pipeline. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Adds a preprocessor hook for extending the HTML processing pipeline. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Adds a resolveSource hook for extending the HTML processing pipeline. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
- Importing a source style file with the url query makes its output CSS filename available in JavaScript, enabling dynamic CSS loading. (3.0.0) — [release notes](https://github.com/webdiscus/html-bundler-webpack-plugin/blob/HEAD/CHANGELOG.md)
