Description
The PureScript compiler is going to switch to ES modules in 0.15, most likely removing the purs bundle
command. This will affect the spago bundle
command as well, which will probably either be removed or will call out to a bundler on the user's behalf.
Try PureScript has historically been designed to work with only stock PureScript tooling and no external tools. However, doing that with the ES modules compiler means serving an unbundled application (unless spago bundle
integrates a bundler for you, in which case we can use that). While an unbundled deployment is possible, ES modules are significantly less performant than the same code bundled, and I'd rather just bundle.
In addition, we may wish to bundle SystemJS if we go forward with #263, and newer versions of Ace have require
statements for the Ace library that also necessitate a bundler. We would either need to revert that change or introduce a bundler to Try PureScript to continue using Ace.
At the moment we have workarounds like making Ace available via a CDN so we can use it, but since we're likely to bundle in the future once the compiler emits ES modules, and we're likely to bundle if we adopt SystemJS, and we're going to have to update Ace to a version that requires bundling when we update to PureScript 0.15, I feel like we should just go ahead and introduce a bundler to Try PureScript.
My personal preference is esbuild
(I can expand on why, if desired), and I would prefer to keep to either no configuration or an extremely minimal configuration -- the sort of thing that would replace spago bundle
.