html-template: Replace html-webpack-template with our own template #1049
meta tags yes, via the
The HTML template that comes with `html-webpack-plugin`  is very minimal and so until now we've used the more fully-featured template from `html-webpack-template`  instead. However that template currently reimplements the core functionality of `html-webpack-plugin` in template markup and so has to be used with `inject` mode disabled . This means: - many `html-webpack-plugin` plugins don't work (eg the one for SRI) - the template depends much more strongly on the internal data structures of `html-webpack-plugin`, and so can be broken by new major versions (as will be the case with `html-webpack-plugin` v4) - the template doesn't benefit from upstream improvements made to the injected content. In addition, `html-webpack-plugin` now supports several features that were previously only possible with a custom template (eg additional meta tags), and there are now many third party plugins to provide additional functionality (and are the preferred approach). As such, this switches `@neutrinojs/html-template` to using its own custom template, that is virtually the same as , other than adding `lang` and `appMountId` support. The `mobile` option has been replaced by adding the same viewport tag via the new `meta` option. If there are features that `html-webpack-template` supported, that our new simpler template does not, users can use their own template (`html-webpack-plugin` pushes this approach strongly) - Neutrino should cater for the 80% out of the box, not the 99%). Unrelated to the switch away from `html-webpack-template`, I've also stopped setting `xhtml` to `true`, since XHTML compliant output isn't something that most people need.  https://github.com/jantimon/html-webpack-plugin/blob/master/default_index.ejs  https://github.com/jaketrent/html-webpack-template/blob/master/index.ejs  jaketrent/html-webpack-template#61
* An error is now shown when using the `links` HTML option without also specifying a custom template, so that users affected by #1049 know what changes they need to make. See: #1129 (comment) * The migration guide now recommends regenerating the lockfiles. * The migration section about supported Node.js versions has been made clearer. See: #1129 (comment) * The `neutrino` bin script error message now mentions `test` being removed, includes `--mode` for the inspect example, and uses the correct URL for the migration guide. * The `minify.image` option deprecation error message no longer refers to `@neutrinojs/image-minify`, since it was removed. I've linked to the issue since it gives more background as to why compile-time minification is not recommended. * The `hotEntries` option deprecation check now always occurs, and not only when `options.hot` is enabled. A test has also been added. * Cleans up a few more `t.throws()` usages (missed in #1159).