From 08cce96531035b0d85b5cf7aaa706524b3623131 Mon Sep 17 00:00:00 2001 From: Filipe Silva Date: Wed, 15 May 2019 19:47:06 +0100 Subject: [PATCH] fix(@angular-devkit/build-angular): show error for missing modules Fix #14421 --- .../models/webpack-configs/common.ts | 2 ++ .../test/browser/errors_spec_large.ts | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/common.ts b/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/common.ts index 18e066ca0f67..3fa8c7bfbd97 100644 --- a/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/common.ts +++ b/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/common.ts @@ -353,6 +353,8 @@ export function getCommonConfig(wco: WebpackConfigOptions): Configuration { hints: false, }, module: { + // Show an error for missing exports instead of a warning. + strictExportPresence: true, rules: [ { test: /\.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)$/, diff --git a/packages/angular_devkit/build_angular/test/browser/errors_spec_large.ts b/packages/angular_devkit/build_angular/test/browser/errors_spec_large.ts index 462593faeea5..63f16d0c859c 100644 --- a/packages/angular_devkit/build_angular/test/browser/errors_spec_large.ts +++ b/packages/angular_devkit/build_angular/test/browser/errors_spec_large.ts @@ -62,4 +62,23 @@ describe('Browser Builder errors', () => { expect(logs.join()).toContain('Function expressions are not supported in'); await run.stop(); }); + + it('shows missing export errors', async () => { + host.writeMultipleFiles({ + 'src/not-main.js': ` + import { missingExport } from 'rxjs'; + console.log(missingExport); + `, + }); + const overrides = { main: 'src/not-main.js' }; + const logger = new logging.Logger(''); + const logs: string[] = []; + logger.subscribe(e => logs.push(e.message)); + + const run = await architect.scheduleTarget(targetSpec, overrides, { logger }); + const output = await run.result; + expect(output.success).toBe(false); + expect(logs.join()).toContain(`export 'missingExport' was not found in 'rxjs'`); + await run.stop(); + }); });