Skip to content

Proposal: Introduce esbuild for Try PureScript #264

Closed
@thomashoneyman

Description

@thomashoneyman

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions