fix(@angular/cli): show a nicer error if packages does not support schematics

Does not show a better error if there are schematics but ng-add isnt found. That will
simply show "schematics ng-add not found" or something alike, which is fine here.

fixes #10467
This commit is contained in:
Hans Larsen 2018-04-27 10:35:23 -07:00 committed by Hans
parent 0fc72bbcd4
commit a47676bd8a
2 changed files with 23 additions and 10 deletions

18
package-lock.json generated
View File

@ -5,14 +5,14 @@
"requires": true,
"dependencies": {
"@angular-devkit/architect": {
"version": "github:angular/angular-devkit-architect-builds#02f2b0de50864f467b6aa9cfdb3d4de5e15678d8",
"version": "github:angular/angular-devkit-architect-builds#74d483c56722413ba0244924419207fe992c32ca",
"requires": {
"@angular-devkit/core": "github:angular/angular-devkit-core-builds#4249c56ddd026599ec4800bcf2dd27df8345dbeb",
"@angular-devkit/core": "github:angular/angular-devkit-core-builds#e23d120163747de5326fb90b553abdb42dbc85f4",
"rxjs": "6.0.0"
},
"dependencies": {
"@angular-devkit/core": {
"version": "github:angular/angular-devkit-core-builds#4249c56ddd026599ec4800bcf2dd27df8345dbeb",
"version": "github:angular/angular-devkit-core-builds#e23d120163747de5326fb90b553abdb42dbc85f4",
"requires": {
"ajv": "6.4.0",
"chokidar": "1.7.0",
@ -23,7 +23,7 @@
}
},
"@angular-devkit/core": {
"version": "github:angular/angular-devkit-core-builds#4249c56ddd026599ec4800bcf2dd27df8345dbeb",
"version": "github:angular/angular-devkit-core-builds#e23d120163747de5326fb90b553abdb42dbc85f4",
"requires": {
"ajv": "6.4.0",
"chokidar": "1.7.0",
@ -32,15 +32,15 @@
}
},
"@angular-devkit/schematics": {
"version": "github:angular/angular-devkit-schematics-builds#4144a9821d7016c427a41071d80af73ce9c447ba",
"version": "github:angular/angular-devkit-schematics-builds#b63dcf777c08bc48788d9bd56fc993115b846748",
"requires": {
"@angular-devkit/core": "github:angular/angular-devkit-core-builds#4249c56ddd026599ec4800bcf2dd27df8345dbeb",
"@angular-devkit/core": "github:angular/angular-devkit-core-builds#e23d120163747de5326fb90b553abdb42dbc85f4",
"@ngtools/json-schema": "1.1.0",
"rxjs": "6.0.0"
},
"dependencies": {
"@angular-devkit/core": {
"version": "github:angular/angular-devkit-core-builds#4249c56ddd026599ec4800bcf2dd27df8345dbeb",
"version": "github:angular/angular-devkit-core-builds#e23d120163747de5326fb90b553abdb42dbc85f4",
"requires": {
"ajv": "6.4.0",
"chokidar": "1.7.0",
@ -1681,7 +1681,7 @@
},
"event-stream": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
"resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
"integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
"dev": true,
"requires": {
@ -4096,7 +4096,7 @@
},
"onetime": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
"dev": true
},

View File

@ -1,3 +1,5 @@
import { tags } from '@angular-devkit/core';
import { NodePackageDoesNotSupportSchematics } from '@angular-devkit/schematics/tools';
import chalk from 'chalk';
import { CommandScope, Option } from '../models/command';
import { parseOptions } from '../models/command-runner';
@ -81,6 +83,17 @@ export default class AddCommand extends SchematicCommand {
force: false,
};
return await this.runSchematic(runOptions);
try {
return await this.runSchematic(runOptions);
} catch (e) {
if (e instanceof NodePackageDoesNotSupportSchematics) {
throw new SilentError(tags.oneLine`
The package that you are trying to add does not support schematics. You can try using
a different version of the package or contact the package author to add ng-add support.
`);
}
throw e;
}
}
}