Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider migration of application bundling to esbuild #189

Open
jayaddison opened this issue Jan 28, 2021 · 0 comments
Open

Consider migration of application bundling to esbuild #189

jayaddison opened this issue Jan 28, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@jayaddison
Copy link
Member

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.

@jayaddison jayaddison added the enhancement New feature or request label Jan 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

No branches or pull requests

1 participant