Skip to content

Commit

Permalink
fix(@angular-devkit/build-angular): fully downlevel async/await when …
Browse files Browse the repository at this point in the history
…using vite dev-server with caching enabled

Prior to this change, async/await in external packages were not being correctly downlevelled when using vite dev-server with cache enabled.

Closes #25985
  • Loading branch information
alan-agius4 committed Oct 9, 2023
1 parent d4dfeaf commit 968ee34
Showing 1 changed file with 17 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ import path, { posix } from 'node:path';
import type { Connect, InlineConfig, ViteDevServer } from 'vite';
import { BuildOutputFile, BuildOutputFileType } from '../../tools/esbuild/bundler-context';
import { JavaScriptTransformer } from '../../tools/esbuild/javascript-transformer';
import { getFeatureSupport, transformSupportedBrowsersToTargets } from '../../tools/esbuild/utils';
import { createAngularLocaleDataPlugin } from '../../tools/vite/i18n-locale-plugin';
import { RenderOptions, renderPage } from '../../utils/server-rendering/render-page';
import { getSupportedBrowsers } from '../../utils/supported-browsers';
import { getIndexOutputFile } from '../../utils/webpack-browser-config';
import { buildEsbuildBrowser } from '../browser-esbuild';
import { Schema as BrowserBuilderOptions } from '../browser-esbuild/schema';
Expand Down Expand Up @@ -131,6 +133,16 @@ export async function* serveWithVite(
if (server) {
handleUpdate(generatedFiles, server, serverOptions, context.logger);
} else {
const projectName = context.target?.project;
if (!projectName) {
throw new Error('The builder requires a target.');
}

const { root = '' } = await context.getProjectMetadata(projectName);
const projectRoot = path.join(context.workspaceRoot, root as string);
const browsers = getSupportedBrowsers(projectRoot, context.logger);
const target = transformSupportedBrowsersToTargets(browsers);

// Setup server and start listening
const serverConfiguration = await setupServer(
serverOptions,
Expand All @@ -140,6 +152,7 @@ export async function* serveWithVite(
browserOptions.externalDependencies,
!!browserOptions.ssr,
prebundleTransformer,
target,
);

server = await createServer(serverConfiguration);
Expand Down Expand Up @@ -295,6 +308,7 @@ export async function setupServer(
prebundleExclude: string[] | undefined,
ssr: boolean,
prebundleTransformer: JavaScriptTransformer,
target: string[],
): Promise<InlineConfig> {
const proxy = await loadProxyConfiguration(
serverOptions.workspaceRoot,
Expand Down Expand Up @@ -556,6 +570,9 @@ export async function setupServer(
entries: [],
// Add an esbuild plugin to run the Angular linker on dependencies
esbuildOptions: {
// Set esbuild supported targets.
target,
supported: getFeatureSupport(target),
plugins: [
{
name: 'angular-vite-optimize-deps',
Expand Down

0 comments on commit 968ee34

Please sign in to comment.