From 5bbac0774f3634f36cacf69d3f6802270e21250d Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Fri, 25 Sep 2020 15:55:42 -0400 Subject: [PATCH] fix(@angular-devkit/build-angular): add karma as an optional peer dependency karma is currently used by the karma builder within this package but is not represented in the dependencies. The can lead to accidental version mismatches as well as package manager hoisting problems due to the package manager not knowing the full dependency set of the package. --- packages/angular_devkit/build_angular/package.json | 4 ++++ packages/angular_devkit/build_angular/src/karma/index.ts | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json index 22ea0964d4d9..93e544ce6c63 100644 --- a/packages/angular_devkit/build_angular/package.json +++ b/packages/angular_devkit/build_angular/package.json @@ -81,6 +81,7 @@ "peerDependencies": { "@angular/compiler-cli": "^11.0.0 || ^11.0.0-next", "@angular/localize": "^11.0.0 || ^11.0.0-next", + "karma": "^5.2.0", "ng-packagr": "^10.0.0", "typescript": ">=3.9 < 4.1" }, @@ -88,6 +89,9 @@ "@angular/localize": { "optional": true }, + "karma": { + "optional": true + }, "ng-packagr": { "optional": true } diff --git a/packages/angular_devkit/build_angular/src/karma/index.ts b/packages/angular_devkit/build_angular/src/karma/index.ts index 8b13fcdf0303..9a4cc9587ffd 100644 --- a/packages/angular_devkit/build_angular/src/karma/index.ts +++ b/packages/angular_devkit/build_angular/src/karma/index.ts @@ -26,7 +26,6 @@ import { SingleTestTransformLoader } from '../webpack/plugins/single-test-transf import { findTests } from './find-tests'; import { Schema as KarmaBuilderOptions } from './schema'; -// tslint:disable-next-line:no-implicit-dependencies export type KarmaConfigOptions = import('karma').ConfigOptions & { buildWebpack?: unknown; configFile?: string; @@ -36,7 +35,6 @@ async function initialize( options: KarmaBuilderOptions, context: BuilderContext, webpackConfigurationTransformer?: ExecutionTransformer, - // tslint:disable-next-line:no-implicit-dependencies ): Promise<[typeof import('karma'), webpack.Configuration]> { const { config } = await generateBrowserWebpackConfigFromContext( // only two properties are missing: @@ -53,7 +51,6 @@ async function initialize( ], ); - // tslint:disable-next-line:no-implicit-dependencies const karma = await import('karma'); return [