From 7ff1c3cb5bcadf49ce20a86353cb2895da617c82 Mon Sep 17 00:00:00 2001 From: Alan Date: Mon, 8 Jul 2019 08:14:46 +0200 Subject: [PATCH] fix(@angular/cli): add `verbose` option to `update` and `add` At the moment there is no way to turn on the verbose logging for `ng update` and `ng add`. This is useful for use so that when users report issues such as npmrc is not read we can see the lookup locations. This also removes some reduncant that were being provided in `executeSchematic`. Related to https://github.com/angular/angular-cli/issues/14993 --- packages/angular/cli/commands/add-impl.ts | 8 ++++---- packages/angular/cli/commands/add.json | 5 +++++ packages/angular/cli/commands/update-impl.ts | 6 ++++-- packages/angular/cli/commands/update.json | 5 +++++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/angular/cli/commands/add-impl.ts b/packages/angular/cli/commands/add-impl.ts index adcbdc6af316..72370fa873a7 100644 --- a/packages/angular/cli/commands/add-impl.ts +++ b/packages/angular/cli/commands/add-impl.ts @@ -11,7 +11,7 @@ import { dirname, join } from 'path'; import { intersects, prerelease, rcompare, satisfies, valid, validRange } from 'semver'; import { isPackageNameSafeForAnalytics } from '../models/analytics'; import { Arguments } from '../models/interface'; -import { SchematicCommand } from '../models/schematic-command'; +import { RunSchematicOptions, SchematicCommand } from '../models/schematic-command'; import npmInstall from '../tasks/npm-install'; import { colors } from '../utilities/color'; import { getPackageManager } from '../utilities/package-manager'; @@ -65,6 +65,7 @@ export class AddCommand extends SchematicCommand { packageMetadata = await fetchPackageMetadata(packageIdentifier.name, this.logger, { registry: options.registry, usingYarn, + verbose: options.verbose, }); } catch (e) { this.logger.error('Unable to fetch package metadata: ' + e.message); @@ -116,6 +117,7 @@ export class AddCommand extends SchematicCommand { try { const manifest = await fetchPackageManifest(packageIdentifier, this.logger, { registry: options.registry, + verbose: options.verbose, usingYarn, }); @@ -174,12 +176,10 @@ export class AddCommand extends SchematicCommand { collectionName: string, options: string[] = [], ): Promise { - const runOptions = { + const runOptions: RunSchematicOptions = { schematicOptions: options, - workingDir: this.workspace.root, collectionName, schematicName: 'ng-add', - allowPrivate: true, dryRun: false, force: false, }; diff --git a/packages/angular/cli/commands/add.json b/packages/angular/cli/commands/add.json index a44773d6f7c3..45679b0faf4d 100644 --- a/packages/angular/cli/commands/add.json +++ b/packages/angular/cli/commands/add.json @@ -30,6 +30,11 @@ "format": "hostname" } ] + }, + "verbose": { + "description": "Display additional details about internal operations during execution.", + "type": "boolean", + "default": false } }, "required": [ diff --git a/packages/angular/cli/commands/update-impl.ts b/packages/angular/cli/commands/update-impl.ts index 64d63baf812c..3323a054c5f9 100644 --- a/packages/angular/cli/commands/update-impl.ts +++ b/packages/angular/cli/commands/update-impl.ts @@ -11,7 +11,6 @@ import * as path from 'path'; import * as semver from 'semver'; import { Arguments, Option } from '../models/interface'; import { SchematicCommand } from '../models/schematic-command'; -import { findUp } from '../utilities/find-up'; import { getPackageManager } from '../utilities/package-manager'; import { PackageIdentifier, @@ -134,6 +133,7 @@ export class UpdateCommand extends SchematicCommand { additionalOptions: { force: options.force || false, next: options.next || false, + verbose: options.verbose || false, packageManager, packages: options.all ? Object.keys(rootDependencies) : [], }, @@ -240,6 +240,7 @@ export class UpdateCommand extends SchematicCommand { package: packageName, collection: migrations, from: options.from, + verbose: options.verbose || false, to: options.to || packageNode.package.version, }, }); @@ -286,7 +287,7 @@ export class UpdateCommand extends SchematicCommand { try { // Metadata requests are internally cached; multiple requests for same name // does not result in additional network traffic - metadata = await fetchPackageMetadata(packageName, this.logger); + metadata = await fetchPackageMetadata(packageName, this.logger, { verbose: options.verbose }); } catch (e) { this.logger.error(`Error fetching metadata for '${packageName}': ` + e.message); @@ -339,6 +340,7 @@ export class UpdateCommand extends SchematicCommand { dryRun: !!options.dryRun, showNothingDone: false, additionalOptions: { + verbose: options.verbose || false, force: options.force || false, packageManager, packages: packagesToUpdate, diff --git a/packages/angular/cli/commands/update.json b/packages/angular/cli/commands/update.json index d17d7c0fafb6..41e19d672f2b 100644 --- a/packages/angular/cli/commands/update.json +++ b/packages/angular/cli/commands/update.json @@ -57,6 +57,11 @@ "allowDirty": { "description": "Whether to allow updating when the repository contains modified or untracked files.", "type": "boolean" + }, + "verbose": { + "description": "Display additional details about internal operations during execution.", + "type": "boolean", + "default": false } } }