From 82f855049fc234590ab3b5a0d0bec8b8c97d411c Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Mon, 23 Oct 2023 08:58:37 +0000 Subject: [PATCH] perf(@angular-devkit/build-angular): remove JavaScript transformer from server polyfills bundling This is no longer needed as the server polyfills file there are no longer Angular deps that require to be "linked". --- .../tools/esbuild/application-code-bundle.ts | 14 +--- .../esbuild/javascript-transfomer-plugin.ts | 71 ------------------- 2 files changed, 2 insertions(+), 83 deletions(-) delete mode 100644 packages/angular_devkit/build_angular/src/tools/esbuild/javascript-transfomer-plugin.ts diff --git a/packages/angular_devkit/build_angular/src/tools/esbuild/application-code-bundle.ts b/packages/angular_devkit/build_angular/src/tools/esbuild/application-code-bundle.ts index d3d9ba447405..9c040116426b 100644 --- a/packages/angular_devkit/build_angular/src/tools/esbuild/application-code-bundle.ts +++ b/packages/angular_devkit/build_angular/src/tools/esbuild/application-code-bundle.ts @@ -17,7 +17,6 @@ import { createCompilerPlugin } from './angular/compiler-plugin'; import { SourceFileCache } from './angular/source-file-cache'; import { createCompilerPluginOptions } from './compiler-plugin-options'; import { createAngularLocaleDataPlugin } from './i18n-locale-plugin'; -import { createJavaScriptTransformerPlugin } from './javascript-transfomer-plugin'; import { createRxjsEsmResolutionPlugin } from './rxjs-esm-resolution-plugin'; import { createSourcemapIgnorelistPlugin } from './sourcemap-ignorelist-plugin'; import { getFeatureSupport } from './utils'; @@ -282,7 +281,7 @@ export function createServerPolyfillBundleOptions( return; } - const { workspaceRoot, jit, sourcemapOptions, advancedOptimizations } = options; + const { workspaceRoot } = options; const buildOptions: BuildOptions = { ...polyfillBundleOptions, platform: 'node', @@ -324,16 +323,7 @@ export function createServerPolyfillBundleOptions( ); } - buildOptions.plugins.push( - createRxjsEsmResolutionPlugin(), - createJavaScriptTransformerPlugin({ - jit, - sourcemap: !!sourcemapOptions.scripts, - babelFileCache: sourceFileCache?.babelFileCache, - advancedOptimizations, - maxWorkers: 1, - }), - ); + buildOptions.plugins.push(createRxjsEsmResolutionPlugin()); return buildOptions; } diff --git a/packages/angular_devkit/build_angular/src/tools/esbuild/javascript-transfomer-plugin.ts b/packages/angular_devkit/build_angular/src/tools/esbuild/javascript-transfomer-plugin.ts deleted file mode 100644 index fd8d36e27384..000000000000 --- a/packages/angular_devkit/build_angular/src/tools/esbuild/javascript-transfomer-plugin.ts +++ /dev/null @@ -1,71 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -import type { Plugin } from 'esbuild'; -import { JavaScriptTransformer, JavaScriptTransformerOptions } from './javascript-transformer'; - -export interface JavaScriptTransformerPluginOptions extends JavaScriptTransformerOptions { - babelFileCache?: Map; - maxWorkers: number; -} - -/** - * Creates a plugin that Transformers JavaScript using Babel. - * - * @returns An esbuild plugin. - */ -export function createJavaScriptTransformerPlugin( - options: JavaScriptTransformerPluginOptions, -): Plugin { - return { - name: 'angular-javascript-transformer', - setup(build) { - let javascriptTransformer: JavaScriptTransformer | undefined; - const { - sourcemap, - thirdPartySourcemaps, - advancedOptimizations, - jit, - babelFileCache, - maxWorkers, - } = options; - - build.onLoad({ filter: /\.[cm]?js$/ }, async (args) => { - // The filename is currently used as a cache key. Since the cache is memory only, - // the options cannot change and do not need to be represented in the key. If the - // cache is later stored to disk, then the options that affect transform output - // would need to be added to the key as well as a check for any change of content. - let contents = babelFileCache?.get(args.path); - if (contents === undefined) { - // Initialize a worker pool for JavaScript transformations - javascriptTransformer ??= new JavaScriptTransformer( - { - sourcemap, - thirdPartySourcemaps, - advancedOptimizations, - jit, - }, - maxWorkers, - ); - - contents = await javascriptTransformer.transformFile(args.path, jit); - babelFileCache?.set(args.path, contents); - } - - return { - contents, - loader: 'js', - }; - }); - - build.onDispose(() => { - void javascriptTransformer?.close(); - }); - }, - }; -}