fix(angular): add missing forceEsbuild option to dev-server executor (#21753)
This commit is contained in:
parent
a8dfc299e8
commit
3e193b94b6
@ -105,6 +105,11 @@
|
||||
"type": "number",
|
||||
"description": "Enable and define the file watching poll time period in milliseconds."
|
||||
},
|
||||
"forceEsbuild": {
|
||||
"type": "boolean",
|
||||
"description": "Force the development server to use the 'browser-esbuild' builder when building. This is a developer preview option for the esbuild-based build system. _Note: this is only supported in Angular versions >= 16.1.0_.",
|
||||
"default": false
|
||||
},
|
||||
"buildLibsFromSource": {
|
||||
"type": "boolean",
|
||||
"description": "Read buildable libraries from source instead of building them separately. If not set, it will take the value specified in the `browserTarget` options, or it will default to `true` if it's also not set in the `browserTarget` options.",
|
||||
|
||||
@ -10,7 +10,6 @@ import {
|
||||
normalizePath,
|
||||
parseTargetString,
|
||||
readCachedProjectGraph,
|
||||
stripIndents,
|
||||
type Target,
|
||||
} from '@nx/devkit';
|
||||
import { getRootTsConfigPath } from '@nx/js';
|
||||
@ -34,7 +33,7 @@ import {
|
||||
mergeCustomWebpackConfig,
|
||||
resolveIndexHtmlTransformer,
|
||||
} from '../utilities/webpack';
|
||||
import { normalizeOptions } from './lib';
|
||||
import { normalizeOptions, validateOptions } from './lib';
|
||||
import type {
|
||||
NormalizedSchema,
|
||||
Schema,
|
||||
@ -55,14 +54,7 @@ export function executeDevServerBuilder(
|
||||
rawOptions: Schema,
|
||||
context: import('@angular-devkit/architect').BuilderContext
|
||||
) {
|
||||
if (rawOptions.esbuildMiddleware?.length > 0) {
|
||||
const { major: angularMajorVersion, version: angularVersion } =
|
||||
getInstalledAngularVersionInfo();
|
||||
if (angularMajorVersion < 17) {
|
||||
throw new Error(stripIndents`The "esbuildMiddleware" option is only supported in Angular >= 17.0.0. You are currently using "${angularVersion}".
|
||||
You can resolve this error by removing the "esbuildMiddleware" option or by migrating to Angular 17.0.0.`);
|
||||
}
|
||||
}
|
||||
validateOptions(rawOptions);
|
||||
|
||||
process.env.NX_TSCONFIG_PATH = getRootTsConfigPath();
|
||||
|
||||
|
||||
@ -1 +1,2 @@
|
||||
export * from './normalize-options';
|
||||
export * from './validate-options';
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
import { stripIndents } from '@nx/devkit';
|
||||
import { lt } from 'semver';
|
||||
import { getInstalledAngularVersionInfo } from '../../../executors/utilities/angular-version-utils';
|
||||
import type { Schema } from '../schema';
|
||||
|
||||
export function validateOptions(options: Schema): void {
|
||||
const { major: angularMajorVersion, version: angularVersion } =
|
||||
getInstalledAngularVersionInfo();
|
||||
|
||||
if (lt(angularVersion, '16.1.0') && options.forceEsbuild !== undefined) {
|
||||
throw new Error(stripIndents`The "forceEsbuild" option is only supported in Angular >= 16.1.0. You are currently using "${angularVersion}".
|
||||
You can resolve this error by removing the "forceEsbuild" option or by migrating to Angular 16.1.0.`);
|
||||
}
|
||||
|
||||
if (angularMajorVersion < 17 && options.esbuildMiddleware?.length > 0) {
|
||||
throw new Error(stripIndents`The "esbuildMiddleware" option is only supported in Angular >= 17.0.0. You are currently using "${angularVersion}".
|
||||
You can resolve this error by removing the "esbuildMiddleware" option or by migrating to Angular 17.0.0.`);
|
||||
}
|
||||
}
|
||||
@ -16,6 +16,7 @@ interface BaseSchema {
|
||||
hmr?: boolean;
|
||||
watch?: boolean;
|
||||
poll?: number;
|
||||
forceEsbuild?: boolean;
|
||||
buildLibsFromSource?: boolean;
|
||||
esbuildMiddleware?: string[];
|
||||
}
|
||||
|
||||
@ -111,6 +111,11 @@
|
||||
"type": "number",
|
||||
"description": "Enable and define the file watching poll time period in milliseconds."
|
||||
},
|
||||
"forceEsbuild": {
|
||||
"type": "boolean",
|
||||
"description": "Force the development server to use the 'browser-esbuild' builder when building. This is a developer preview option for the esbuild-based build system. _Note: this is only supported in Angular versions >= 16.1.0_.",
|
||||
"default": false
|
||||
},
|
||||
"buildLibsFromSource": {
|
||||
"type": "boolean",
|
||||
"description": "Read buildable libraries from source instead of building them separately. If not set, it will take the value specified in the `browserTarget` options, or it will default to `true` if it's also not set in the `browserTarget` options.",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user