Skip to content
This repository was archived by the owner on Aug 28, 2025. It is now read-only.
This repository was archived by the owner on Aug 28, 2025. It is now read-only.

Consider migration of application bundling to esbuild #189

@jayaddison

Description

@jayaddison

Is your feature request related to a problem? Please describe.
Bundling the application during the local development workflow and during test/production deployments can take a little while. Excluding time to retrieve container images (which occurs during from-scratch builds), a production image build can take almost 30 seconds, most of which is spent bundling the application.

esbuild makes some fairly bold performance claims and looks like a project to keep in mind as a potential replacement bundler.

The main challenges here are:

  • Ensuring that the replacement bundler can handle all of the essential tasks handled within the application's webpack configuration
  • Ensuring that we can still run unit tests over the codebase -- these currently involve a two-step process that bundles the application using webpack (ensuring behavioural consistency) and then runs the tests on the compiled bundle. This is achieved using mochapack.

Describe the solution you'd like
Migration of the application bundling process to an alternative bundler -- such as esbuild -- that results in faster build times, while maintaining the ability to correctly run all of the application's existing unit tests.

Describe alternatives you've considered
There's a chance that it could make sense to de-couple the unit tests entirely from the application bundling process. Currently there is a relatively tight coupling between some of the application's components (for example, database code) and a requirement for a browser-like JavaScript runtime environment for the tests to run in.

cc @queencitra (no action required; just mentioning this in case you're interested from a future QA perspective)

Additional context
Add any other context or screenshots about the feature request here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions