From 1873f2d28f8f508c1f360e07b03b60ff20c20d25 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Fri, 25 Sep 2020 16:15:45 -0400 Subject: [PATCH] fix(@angular-devkit/build-angular): add tslint as an optional peer dependency tslint is currently used by the tslint 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/tslint/index.ts | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json index 1d54b7fec7..85be7a466b 100644 --- a/packages/angular_devkit/build_angular/package.json +++ b/packages/angular_devkit/build_angular/package.json @@ -84,6 +84,7 @@ "karma": "^5.2.0", "ng-packagr": "^10.0.0", "protractor": "^7.0.0", + "tslint": "^6.1.0", "typescript": ">=3.9 < 4.1" }, "peerDependenciesMeta": { @@ -98,6 +99,9 @@ }, "protractor": { "optional": true + }, + "tslint": { + "optional": true } } } diff --git a/packages/angular_devkit/build_angular/src/tslint/index.ts b/packages/angular_devkit/build_angular/src/tslint/index.ts index a3c7da59a0..e5188ec2d8 100644 --- a/packages/angular_devkit/build_angular/src/tslint/index.ts +++ b/packages/angular_devkit/build_angular/src/tslint/index.ts @@ -11,7 +11,7 @@ import { readFileSync } from 'fs'; import * as glob from 'glob'; import { Minimatch } from 'minimatch'; import * as path from 'path'; -import * as tslint from 'tslint'; // tslint:disable-line:no-implicit-dependencies +import * as tslint from 'tslint'; import { Program } from 'typescript'; import { stripBom } from '../utils/strip-bom'; import { Schema as RealTslintBuilderOptions } from './schema'; @@ -25,7 +25,7 @@ interface LintResult extends tslint.LintResult { async function _loadTslint() { let tslint; try { - tslint = await import('tslint'); // tslint:disable-line:no-implicit-dependencies + tslint = await import('tslint'); } catch { throw new Error('Unable to find TSLint. Ensure TSLint is installed.'); }