From 33808d29fc3e2a41984dac45283e9cce65411ce0 Mon Sep 17 00:00:00 2001 From: Alan Date: Thu, 7 Feb 2019 13:58:43 +0100 Subject: [PATCH 1/3] refactor: change error message to use option name instead of args --- packages/angular_devkit/build_angular/src/browser/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/angular_devkit/build_angular/src/browser/index.ts b/packages/angular_devkit/build_angular/src/browser/index.ts index b13b08eb1823..d81bd9748147 100644 --- a/packages/angular_devkit/build_angular/src/browser/index.ts +++ b/packages/angular_devkit/build_angular/src/browser/index.ts @@ -113,7 +113,7 @@ export class BrowserBuilder implements Builder { ) { // Ensure Build Optimizer is only used with AOT. if (options.buildOptimizer && !options.aot) { - throw new Error('The `--build-optimizer` option cannot be used without `--aot`.'); + throw new Error(`The 'buildOptimizer' option cannot be used without 'aot'.`); } let wco: WebpackConfigOptions; From a1e40c77b964d91bc70459076e9cd274ed435beb Mon Sep 17 00:00:00 2001 From: Alan Date: Fri, 8 Feb 2019 07:53:33 +0100 Subject: [PATCH 2/3] fix(@angular-devkit/build-angular): error when both `baseUrl` and `devServerTarget` are used in protractor Users cannot use both baseUrl and devServerTarget, and the later superseeds the baseUrl. Fixes #13611 --- .../build_angular/src/protractor/index.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/protractor/index.ts b/packages/angular_devkit/build_angular/src/protractor/index.ts index a6effc5032f8..8e37fc796ddb 100644 --- a/packages/angular_devkit/build_angular/src/protractor/index.ts +++ b/packages/angular_devkit/build_angular/src/protractor/index.ts @@ -44,7 +44,14 @@ export class ProtractorBuilder implements Builder { const options = builderConfig.options; const root = this.context.workspace.root; const projectRoot = resolve(root, builderConfig.root); - // const projectSystemRoot = getSystemPath(projectRoot); + + // ensure that either one of this option is used + if (options.devServerTarget && options.baseUrl) { + throw new Error(tags.stripIndents` + The 'baseUrl' option cannot be used with 'devServerTarget'. + When present, 'devServerTarget' will be used to automatically setup 'baseUrl' for Protractor. + `); + } // TODO: verify using of(null) to kickstart things is a pattern. return of(null).pipe( @@ -81,7 +88,7 @@ export class ProtractorBuilder implements Builder { } // Compute baseUrl from devServerOptions. - if (options.devServerTarget && builderConfig.options.publicHost) { + if (builderConfig.options.publicHost) { let publicHost = builderConfig.options.publicHost; if (!/^\w+:\/\//.test(publicHost)) { publicHost = `${builderConfig.options.ssl @@ -90,7 +97,7 @@ export class ProtractorBuilder implements Builder { } const clientUrl = url.parse(publicHost); baseUrl = url.format(clientUrl); - } else if (options.devServerTarget) { + } else { const result: DevServerResult | undefined = buildEvent.result; baseUrl = url.format({ From 298f8ff0adff320d1e925cd714b7712d1df639d2 Mon Sep 17 00:00:00 2001 From: Alan Date: Fri, 8 Feb 2019 07:55:28 +0100 Subject: [PATCH 3/3] refactor: deprecate protractor baseUrl option from builder Users should use baseUrl property in the Protractor config file --- .../angular_devkit/build_angular/src/protractor/schema.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/angular_devkit/build_angular/src/protractor/schema.json b/packages/angular_devkit/build_angular/src/protractor/schema.json index f01e86bc81e6..6e9998bc6dea 100644 --- a/packages/angular_devkit/build_angular/src/protractor/schema.json +++ b/packages/angular_devkit/build_angular/src/protractor/schema.json @@ -45,7 +45,8 @@ }, "baseUrl": { "type": "string", - "description": "Base URL for protractor to connect to." + "description": "Base URL for protractor to connect to.", + "x-deprecated": "Use \"baseUrl\" in the Protractor config file instead." } }, "additionalProperties": false,