Rebuild tests that involve file watching can be very flaky on CI. This change adds a debounce time which is also used in the other rebuild tests within the package.
This change integrates the Ivy Webpack compiler plugin into the browser builder.
When Ivy is enabled, which is the default behavior for applications, this plugin will now be used.
If needed, the previous plugin can still be used by enabling the `NG_BUILD_IVY_LEGACY` environment variable.
A custom babel preset is introduced to centralize the configuration of babel within the package. Application related presets and plugins are now encapsulated within the custom preset which is used via the Webpack babel-loader. This new custom preset will also provide the integration point for the upcoming Angular linker.
This change will analyze the extract i18n messages for duplicates and issue warnings for each case. This provides the same default behavior as the standalone message extractor contained within `@angular/localize`. Configurability of the behavior of a detected duplicate (ignore, warn, error) will be added in a future feature.
This change allows the usage of the legacy i18n message identifier format during extraction to be controlled via the `angularCompilerOptions` option `enableI18nLegacyMessageIdFormat` within the application's TypeScript configuration.
With updates to the `license-webpack-plugin` and adjustments to the web worker plugin configuration, license extraction can now be used with webpack 5. This change also removes the need to filter out the duplicate asset warning on Webpack 4 that was previously being generated.
The source locale was intended to be used when building an application; even when not specifically localizing. This includes setting the HTML `lang` attribute, injecting locale data, and setting `LOCALE_ID` within the application.
With this change function and arrow function arguments are not wrapped in parenthesis during the optimization phase.
`wrap_func_args` which is enabled by default in terser will wrap function arguments in parenthesis. Recently this was also changed to wrap lamdas as well:
66c3a5ce66
An increase in bundle size was observed without this change. See: https://github.com/angular/angular/pull/39432#discussion_r512345752
The application output files are not needed during an extraction. Previously the files were emitted to a memory file system and discarded. This change removes the processing overhead of emitting the files. It also provides Webpack 5 support due to the internal memory file system no longer being exported.
With this change we remove the unintentional breaking change that added publicHost pathname to sockPath instead we now prepend the sockPath with the servePath, which can be either the passed servePath option, baseHref or deployUrl.
By default subdirectories within a symlinked directory are not searched by a glob. The new `followSymlinks` option for the longhand form of the `assets` browser builder option now allows opting in to search such subdirectories.