diff --git a/packages/angular/cli/lib/config/schema.json b/packages/angular/cli/lib/config/schema.json
index 774eb7daeb44..cd0b2b193e6c 100644
--- a/packages/angular/cli/lib/config/schema.json
+++ b/packages/angular/cli/lib/config/schema.json
@@ -548,7 +548,7 @@
       "type": "null",
       "definitions": {
         "appShell": {
-          "description": "App Shell target options for Build Facade.",
+          "description": "App Shell target options for Architect.",
           "type": "object",
           "properties": {
             "browserTarget": {
@@ -580,7 +580,7 @@
           "additionalProperties": false
         },
         "browser": {
-          "title": "Webpack browser schema for Build Facade.",
+          "title": "Webpack browser schema for Architect.",
           "description": "Browser target options",
           "properties": {
             "assets": {
@@ -1050,7 +1050,7 @@
           }
         },
         "devServer": {
-          "description": "Dev Server target options for Build Facade.",
+          "description": "Dev Server target options for Architect.",
           "type": "object",
           "properties": {
             "browserTarget": {
@@ -1223,7 +1223,7 @@
           "additionalProperties": false
         },
         "extracti18n": {
-          "description": "Extract i18n target options for Build Facade.",
+          "description": "Extract i18n target options for Architect.",
           "type": "object",
           "properties": {
             "browserTarget": {
@@ -1264,7 +1264,7 @@
           "additionalProperties": false
         },
         "karma": {
-          "description": "Karma target options for Build Facade.",
+          "description": "Karma target options for Architect.",
           "type": "object",
           "properties": {
             "main": {
@@ -1439,6 +1439,10 @@
               "items": {
                 "type": "string"
               }
+            },
+            "webWorkerTsConfig": {
+              "type": "string",
+              "description": "TypeScript configuration for Web Worker modules."
             }
           },
           "additionalProperties": false,
@@ -1514,7 +1518,7 @@
           }
         },
         "protractor": {
-          "description": "Protractor target options for Build Facade.",
+          "description": "Protractor target options for Architect.",
           "type": "object",
           "properties": {
             "protractorConfig": {
@@ -1822,7 +1826,7 @@
           }
         },
         "tslint": {
-          "description": "TSlint target options for Build Facade.",
+          "description": "TSlint target options for Architect.",
           "type": "object",
           "properties": {
             "tslintConfig": {
diff --git a/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/worker.ts b/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/worker.ts
index 1ec0a148ed0d..fc3b8d5b3896 100644
--- a/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/worker.ts
+++ b/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/worker.ts
@@ -15,7 +15,12 @@ const WorkerPlugin = require('worker-plugin');
 
 export function getWorkerConfig(wco: WebpackConfigOptions): Configuration {
   const { buildOptions } = wco;
+
   if (!buildOptions.webWorkerTsConfig) {
+    return {};
+  }
+
+  if (typeof buildOptions.webWorkerTsConfig != 'string') {
     throw new Error('The `webWorkerTsConfig` must be a string.');
   }
 
diff --git a/packages/angular_devkit/build_angular/src/browser/index.ts b/packages/angular_devkit/build_angular/src/browser/index.ts
index 7aeab2a9f000..64f0e8d62bdf 100644
--- a/packages/angular_devkit/build_angular/src/browser/index.ts
+++ b/packages/angular_devkit/build_angular/src/browser/index.ts
@@ -155,6 +155,7 @@ export function buildWebpackConfig(
       getBrowserConfig(wco),
       getStylesConfig(wco),
       getStatsConfig(wco),
+      getWorkerConfig(wco),
     ];
 
     if (wco.buildOptions.main || wco.buildOptions.polyfills) {
@@ -179,10 +180,6 @@ export function buildWebpackConfig(
       });
     }
 
-    if (wco.buildOptions.webWorkerTsConfig) {
-      webpackConfigs.push(getWorkerConfig(wco));
-    }
-
     const webpackConfig = webpackMerge(webpackConfigs);
 
     if (options.profile || process.env['NG_BUILD_PROFILING']) {
diff --git a/packages/angular_devkit/build_angular/src/karma/index.ts b/packages/angular_devkit/build_angular/src/karma/index.ts
index d437b36dc848..38230be6afbf 100644
--- a/packages/angular_devkit/build_angular/src/karma/index.ts
+++ b/packages/angular_devkit/build_angular/src/karma/index.ts
@@ -16,6 +16,7 @@ import {
   getNonAotConfig,
   getStylesConfig,
   getTestConfig,
+  getWorkerConfig,
 } from '../angular-cli-files/models/webpack-configs';
 import { Schema as BrowserBuilderOptions } from '../browser/schema';
 import { generateBrowserWebpackConfigFromContext } from '../utils/webpack-browser-config';
@@ -44,6 +45,7 @@ async function initialize(
       getStylesConfig(wco),
       getNonAotConfig(wco),
       getTestConfig(wco),
+      getWorkerConfig(wco),
     ],
     host,
   );
diff --git a/packages/angular_devkit/build_angular/src/karma/schema.json b/packages/angular_devkit/build_angular/src/karma/schema.json
index a36b9797f236..1f70c9976313 100644
--- a/packages/angular_devkit/build_angular/src/karma/schema.json
+++ b/packages/angular_devkit/build_angular/src/karma/schema.json
@@ -185,6 +185,10 @@
       "items": {
         "type": "string"
       }
+    },
+    "webWorkerTsConfig": {
+      "type": "string",
+      "description": "TypeScript configuration for Web Worker modules."
     }
   },
   "additionalProperties": false,