-
Notifications
You must be signed in to change notification settings - Fork 12k
feat(@angular-devkit/build-angular): add initial experimental esbuild-based application browser builder #22995
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
Conversation
c18a2ca
to
2f9522d
Compare
2f9522d
to
2f61c76
Compare
packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/stylesheets.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts
Outdated
Show resolved
Hide resolved
9bb0f20
to
1cd3c66
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome stuff! It actually comes together looking pretty simple in the end. I mostly have a bunch of nitpicks and questions, but overall it looks great!
packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts
Outdated
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/options.ts
Show resolved
Hide resolved
packages/angular_devkit/build_angular/src/builders/browser-esbuild/stylesheets.ts
Outdated
Show resolved
Hide resolved
783f249
to
1ae9dec
Compare
packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts
Show resolved
Hide resolved
1ae9dec
to
3423807
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! I think some comments are still open but I don't have any major concerns with this.
packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts
Outdated
Show resolved
Hide resolved
…-based application browser builder An experimental browser application builder (`browser-esbuild`) has been introduced that leverages esbuild as the bundler. This new builder is compatible with options of the current browser application builder (`browser`) and can be enabled for experimentation purposes by replacing the `builder` field of `@angular-devkit/build-angular:browser` from an existing project to `@angular-devkit/build-angular:browser-esbuild`. The builder will generate an ESM-based application and provides support for ES2015+ compatible output with ES2020 as the default. This builder is considered experimental and is not recommended for production applications. Currently not all `browser` builder options and capabilities are supported with this experimental builder. Additional support for these options may be added in the future. The following options and capabilities are not currently supported: * Stylesheet Preprocessors (only CSS styles are supported) * Angular JIT mode (only AOT is supported) * Localization [`localize`] * Watch and dev-server modes [`watch`, `poll`, etc.] * File replacements [`fileReplacements`] * License text extraction [`extractLicenses`] * Bundle budgets [`budgets`] * Global scripts [`scripts`] * Build stats JSON output [`statsJson`] * Deploy URL [`deployURL`] * CommonJS module warnings (no warnings will be generated for CommonJS package usage) * Web Workers * Service workers [`serviceWorker`, `ngswConfigPath`]
The basic suite of E2E tests are now run against the newly introduced experimental esbuild-based builder (`browser-esbuild`). Several tests are currently ignored based on the current feature set of the builder.
3423807
to
c1b1c49
Compare
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
An experimental browser application builder (
browser-esbuild
) has been introduced that leverages esbuild as the bundler.This new builder is compatible with options of the current browser application builder (
browser
) and can be enabledfor experimentation purposes by replacing the
builder
field of@angular-devkit/build-angular:browser
from an existingproject to
@angular-devkit/build-angular:browser-esbuild
. The builder will generate an ESM-based application and provides support for ES2015+ compatible output with ES2020 as the default.This builder is considered experimental and is not recommended for production applications.
Currently not all
browser
builder options and capabilities are supported with this experimental builder. Additional support for these options may be added in the future.The following options and capabilities are not currently supported:
localize
]watch
,poll
, etc.]fileReplacements
]extractLicenses
]budgets
]scripts
]statsJson
]deployURL
]serviceWorker
,ngswConfigPath
]