I've now also figured out why loading of chunks failed when running
using converse.js (but not when using converse.min.js or when running `make watch`).
When running `make dist`, first `converse.js` and `converse.min.js` were
built with `mode` set to `development` (via `webpack.dev.js`) and then
`converse.min.js` was again built with mode set to `production` (via
`webpack.prod.js`).
When running only one build or the other (either `webpack.dev.js` or
`webpack.prod.js`) then the loading of chunks didn't fail, so it had
something to do with running both builds back to back.
I've now removed the `.dev.js` webpack config files and instead build
the minimized and non-minimized from the same config file
`webpack.build.js`.
I did the same for the headless builds.
Had to make various other changes due to incompatibilities.
- Use the new `lit` package instead of `lit-html` or `lit-element`
- Drop `haunted` since it breaks the rules by specifying `type: module`
but then doesn't import with file extensions
- Use Sass Dart instead of node-sass (fixes#2445)
- Upgrade Karma
* Remove CleanWebpackPlugin
This pugin would wipe the non-minified files every time `make dist` was called,
and generally made it more difficult to build only particular files.
* Use order-only prerequisites for the `dist` Make recipe
This allows more efficient building because order-only prerequisites
don't force a rebuild of the main recipe.
https://www.gnu.org/software/make/manual/make.html#Prerequisite-Types
Changes how rich message markup is generated and kept track of.
We now have a MessageText class which subclasses String and which keeps
track of the rich markup associated with the message.