4.0.0 (2020-03-23)
The summary can be found in the release blog post.
Bug Fixes
- Add dependencies from the child compilation to the main compilation (27c3e72)
- Add typing for assets(Close jantimon#1243) (9fef060)
- allow
contenthash
along with templatehash
(049d4d3), closes #1033 - Catch and ignore pretty-error errors (2056139), closes #921
- Drop @types/webpack dependency (d4eb1c7)
- Ignore foreign child compilers (1422664)
- Improve perfomance for appcache files (b94e043)
- load script files before style files files in defer script loading mode (97f9fb9)
- Prevent chunks from beeing added multiple times (d65b37d)
- Prevent lodash from being inlined to work around a babel-loader incompatibility (7f21910), closes #1223
- Remove compilation.getStats() call for performance reasons (7005a55)
- remove useless links for options (#1153) (267e0e0)
- Update references to html-minifier (24bf1b5), closes #1311
- typings.d.ts: added apply method type to HtmlWwbpackPlugin class definitoin (8b7255f), closes jantimon#1244
- rename
contenthash
to templatehash
(4c11c5d) - Repair typings (#1166) (f4cb241)
- small type. minifcation instead of minification (#1154) (56037a6)
- Use src/index.ejs by default if present (#1167) (c27e5e4)
- chunksorter: Don't sort chunks by default (22fb03f)
- loader: switch to loaderUtils.getOptions (a0a0f0d)
- README: adds a link to template option documentation (f40aeae)
- tests: Upgrade webpack-recompilation-simulator (dfe1d10)
- Update lodash to 4.17.10 (cc3bf49)
Code Refactoring
- Change the structure of the internal assets object (37db086)
- Changed hook names and arguments - the hook order is 'beforeAssetTagGeneration', 'alterAssetTags', 'alterAssetTagGroups', 'afterTemplateExecution', 'beforeEmit', 'afterEmit' (14b4456)
- Use Webpack 4 APIs (47efdea)
Features
- add
.toString
implementation to htmlTags to allow easier rendering (34d8aa5) - Add default viewport meta tag for default template (302e39e), closes #897 #978
- Add defer script loading (de315eb)
- Add support for relative publicPath (dbbdd81)
- Add support for <base> tag (#1160) (c5d4b86)
- Add support for minifying inline ES6 inside html templates (c66766c), closes #1262
- Add support for the [contenthash] placeholder inside htm file names (ae8233a)
- Add typings to package.json (a524e8f), closes #1132
- Allow to return async template parameters (99f9362)
- drop workaround for "Uncaught TypeError: webpack_require(...) is not a function" to be compatible with webpack 5 (15ad0d2)
- Export major version of this plugin (6ae6f48)
- merge templateParameters with default template parameters (1d66e53)
- Provide a verbose error message if html minification failed (7df269f)
- compiler: Add file dependencies (bbc07a3)
- compiler: Use a single compiler for multiple plugin instances (f29ae88)
- compiler: Use timestamps to verify cache validity (0ebcd17)
- Remove selfClosingTag (5d3d8e4)
- Remove type="text/javascript" from injected script tags (b46bf67)
- Replace jade with pug in examples (d7ec407)
- Switch from jasmine to jest (ae1f435)
- hooks: Add a helper for easier hook access (b6dec4b)
- hooks: Provide static getHook method for access to all html-webpack-plugin hooks (#995) (82b34a1)
- Simplify <meta> element and charset attribute (55313be)
- support ES6 template string in default loader (d6b65dd), closes #950
- Use jsdoc for static typing (a6b8d2d)
- Use webpack 4 entries api to extract asset information (342867e)
- html-tags: Add a helper to create html-tags (ee6a165)
BREAKING CHANGES
- defaults: Use src/index.ejs if no template option is set.
- defaults: The default template has now a predefined viewport meta tag
- defaults: The default meta utf-8 declaration was changed to <meta charset="utf-8"/>
- hooks: Renamed beforeHtmlGeneration hook to beforeAssetTagGeneration
- hooks: Renamed beforeHtmlProcessing hook to alterAssetTags
- hooks: Renamed afterHtmlProcessing hook to beforeEmit
- hooks: The html-webpack-plugin doesn't add its hooks to the compilation object anymore
- The assets object which is used for the template parameters and inside hooks was changed. The chunks property was removed and the js and css property was converted from a string into an object
{ entryName: string, path: string}
- The mimetype information "text/javascript" is removed from all generated script
tags
- Remove selfClosingTag attribute
- Template strings inside templates are now disabled by default
- Dropped support for Webpack 1 - 3
- Template variable webpack was removed
- chunksorter: Chunks aren't sorted anymore by default
<a name="3.2.0"></a>