54 Commits

Author SHA1 Message Date
Charles Lyding
e221c9a147 fix(@angular/cli): directly remove ansi color codes when no color support
Third party libraries can attempt to write color codes to the output even though the CLI has already determined that color should not be used.  The previously implemented color removal code is no longer functional since the update of ansi-colors to 4.1.0.  While this appears to be a defect in the aforementioned package, the new CLI removal method not only bypasses the defect but also unneeded execution logic that the CLI does not need in this case.

Fixes: #17053
2020-02-24 12:39:15 -08:00
Alan Agius
66b218c5f6 fix(@angular/cli): print ng update errors stack to log file
When an error occurs during ng update we currently discard the stack trace which in some cases made it hard to identify the cause of the error.

Now, we print the stack trace to a log file similarly to unhandled exceptions.

Example of CMD output;
```cmd
** Executing migrations of package '@angular/core' **

> Static flag migration.
  Removes the `static` flag from dynamic queries.
  As of Angular 9, the "static" flag defaults to false and is no longer required for your view and content queries.
  Read more about this here: https://v9.angular.io/guide/migration-dynamic-flag
× Migration failed: x
  See "C:\Users\alag\AppData\Local\Temp\ng-NgmC1G\angular-errors.log" for further details.
```

Example of log file contents:
```txt
[error] Error: x
    at UpdateCommand.executeSchematic (C:\git\angular-cli\test\node_modules\@angular\cli\commands\update-impl.js:98:19)
    at UpdateCommand.executePackageMigrations (C:\git\angular-cli\test\node_modules\@angular\cli\commands\update-impl.js:167:39)
    at UpdateCommand.executeMigrations (C:\git\angular-cli\test\node_modules\@angular\cli\commands\update-impl.js:161:21)
    at UpdateCommand.run (C:\git\angular-cli\test\node_modules\@angular\cli\commands\update-impl.js:394:38)
    at async UpdateCommand.validateAndRun (C:\git\angular-cli\test\node_modules\@angular\cli\models\command.js:134:28)
    at async Object.runCommand (C:\git\angular-cli\test\node_modules\@angular\cli\models\command-runner.js:201:24)
    at async default_1 (C:\git\angular-cli\test\node_modules\@angular\cli\lib\cli\index.js:62:31)
```
2020-02-18 12:43:35 -08:00
Alan Agius
12868b3b4f refactor(@angular/cli): use isJsonObject helper in to read config 2019-11-27 13:41:57 -08:00
Murad
8e81c6aa95 feat(@angular/cli): Support XDG Base Directory Specfication
Explained here: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

Current change affects reading of global config from `.angular-config.json`. By default it will be created in user's home directory. If user moves it manually to `$HOME/.config/angular/.angular-config.json`, it will be subsequently read from new location.
2019-11-12 11:50:22 -08:00
Alan Agius
e8135babd4 refactor: update pacote to version 10 2019-11-06 10:51:35 -08:00
Alan Agius
b0dcfd08a0 fix(@angular/cli): logic to determine if the installed CLI is out of date
With this change we now check if the current CLI version is the latest published version. If it is not, we install a temporary version to run the `ng update` with.
2019-10-22 13:13:54 -07:00
Alan Agius
d133ba68c0 feat(@angular/cli): add support for ng-add packages that should not be saved as dependencies
With this change the CLI offers a way for a package authors to specify if during `ng add` the package should be saved as a `dependencies`, `devDependencies` or not saved at all.

Such config needs to be specified in `package.json`

Example:
```json
  "ng-add": {
    "save": false
  }
```

Possible values are;
- false - Don't add the package to `package.json`
- true - Add the package to the `dependencies`
- `dependencies` - Add the package to the `dependencies`
- `devDependencies` - Add the package to the `devDependencies`

Closes #12003 , closes #15764 and closes #13237
2019-10-14 13:40:31 -07:00
Charles Lyding
0abeadbc10 refactor(@angular/cli): use canonical npm logic to determine update package version 2019-09-19 14:41:04 -07:00
Charles Lyding
2565077dbe fix(@angular/cli): correctly account for linked packages in update
Fixes #15511
Fixes #15294
2019-09-11 10:10:48 -07:00
Adam Vigneaux
87b01ffd6a feat(@angular/cli): add support for custom npmrc paths
According to [the npm config
docs](https://docs.npmjs.com/misc/config#npmrc-files), a user can
specify the path to their `npmrc` files using the environment
variables `NPM_CONFIG_USERCONFIG` and `NPM_CONFIG_GLOBALCONFIG`. When
set, these variables should override the default paths.
2019-08-29 23:47:22 +05:30
Charles Lyding
b630317b4b refactor(@angular/cli): convert workspace access to async
This is in preparation for conversion from the experimental workspace API to the stable workspace API.
2019-08-16 09:32:04 -07:00
vikerman
4287d57a32
fix(@angular/cli): typo in error message
Fixes #15208
2019-07-30 14:34:29 -07:00
Filipe Silva
e8dff5718f build: update to TS 3.5 2019-07-29 10:15:23 -07:00
Alan Agius
15ef15e94a style: remove redundant max-line-length disables and fix other lint issues 2019-07-24 19:06:21 -07:00
Alan Agius
a57e98662c fix(@angular/cli): display a more detailed error message when workspace cannot be loaded
Closes #15023, closes #10757, closes #14933 and closes #11204
2019-07-10 04:37:06 +08:00
Hans Larsen
51c30e5def refactor(@angular/cli): refactor isTTY() function
It was really hard to read with double negatives and such.
2019-06-26 11:22:19 -07:00
Charles Lyding
c4313f55e4 refactor(@angular/cli): unify color handling and support 2019-06-24 17:27:59 -07:00
Charles Lyding
2334a7c030 fix(@angular/cli): use recommended TTY check logic
`stdin` can be redirected/piped by various shells but still be interactive.  Node.js recommends only testing `stdout`: https://nodejs.org/api/tty.html#tty_tty

Fixes #14640
2019-06-06 14:28:36 -07:00
Charles Lyding
410b56e107 fix(@angular/cli): check for CI environment variable in tty helper
Fixes #14563
2019-05-30 12:32:01 +02:00
Charles Lyding
57189f6eca fix(@angular/cli): standardize TTY checks 2019-05-22 10:02:58 +02:00
Charles Lyding
b7fc6125e5 fix(@angular/cli): improve error handling of update command
This adds extensive option checking and error handling with the goal to catch user errors as early in the process as possible.  Bad option combinations and/or values will result in actionable information and stop the process before network access and processing occurs.
2019-05-15 14:34:03 -07:00
Hans Larsen
cf5cf19bb5 feat(@angular/cli): add analytic support to commands and command-runner
This is only reporting commands and their flags right now, and not
schematics or project analytics.
2019-03-20 15:08:07 -07:00
Charles Lyding
be5e2fbfe5 fix(@angular/cli): remove redundant typescript/compiler-cli compatibility check
Angular 5.0+ has a full peer dependencies setup (with 6.0+ also having a configurable runtime error check) to ensure that an appropriate version of typescript is available for compilation.  Angular CLI 8.0+ does not support Angular versions prior to these and therefore the warning is redundant.  For the case where the developer wishes to use an unsupported TypeScript version, the developer would need to adjust two similar but differently name settings in two different configuration files.
2019-02-20 10:36:52 -08:00
Charles Lyding
b956db6262 fix(@angular/cli): 'ng add' selects supported version via peer dependencies
If no version specifier is supplied `ng add` will now try to find the most recent version of the package that has peer dependencies that match the package versions supplied in the project's package.json
2019-01-21 20:27:20 -08:00
Hans
3a28d4c142 feat(@angular-devkit/core): add a new JsonSchema type
A Schema is either an Object or a boolean. We could reduce JsonSchema scope further
by adding properties, but a schema is a really complex type so its not worth the
effort.
2018-12-14 10:55:04 -08:00
Charles Lyding
f066e99e3a feat(@angular/cli): initial minimal BEP support 2018-12-11 11:58:05 -08:00
Charles Lyding
00141868ce fix(@angular/cli): silence package manager not found messages
Fixes #12939
2018-11-14 12:40:22 -08:00
Hans Larsen
456614828f feat(@angular/cli): allow flags to have deprecation
The feature comes from the "x-deprecated" field in schemas (any schema that is used
to parse arguments), and can be a boolean or a string.

The parser now takes a logger and will warn users when encountering a deprecated
option. These options will also appear in JSON help.
2018-11-14 10:29:07 -08:00
clydin
5e354d17f1 feat(@angular/cli): autodetect default package manager (#12753) 2018-11-06 22:00:40 -08:00
Filipe Silva
298faa129a test(@angular/cli): fix implicit import
This lint error resulted from the interaction between https://github.com/angular/angular-cli/pull/12554 and https://github.com/angular/angular-cli/pull/12515.
2018-11-01 10:07:48 -07:00
Filipe Silva
eef66f0f65 fix(@angular/cli): error out when command json is invalid 2018-11-01 08:26:28 -07:00
Alan Agius
91e5fc0bfa build: update to TypeScript 3.1 2018-10-01 07:39:59 -07:00
Hans
b02a7e5f9b fix(@angular/cli): on error finding files, show warning
This should not prevent execution, but is useful to know.
2018-09-19 13:02:40 -07:00
Hans
fcbc7db54f feat(@angular/cli): remove --help-json and add format to help
--help now accepts a value which can be a boolean or a string. If the value
is not understood we simply show a message to the user that it was invalid.
2018-09-19 13:02:40 -07:00
Hans
34818b0346 feat(@angular/cli): add subcommand to options
SubCommands are not tied to the option that triggers them. They
contain a subset of a CommandDescription interface, with at least
a short and long description and usage notes. These are generated
from the subcommand schema (e.g. schematics in case of generate).
2018-09-19 13:02:40 -07:00
Hans
6622aa9d1a refactor(@angular/cli): remove command type
It was really unused.
2018-09-19 13:02:40 -07:00
Hans
86d803e80a docs(@angular/cli): add comments for Command interface 2018-09-19 13:02:40 -07:00
Hans
3bb6548d15 feat(@angular/cli): add usage notes to help JSON 2018-09-19 13:02:40 -07:00
Hans
af96ccfb65 fix(@angular/cli): fix support for hidden options
They were showing when they should have been hidden.
2018-09-14 21:29:31 -07:00
Hans
d10c9e3104 fix(@angular/cli): fix support for default values in options 2018-09-14 21:29:31 -07:00
Hans
b5fc50fa1c fix(@angular/cli): add support for all variant of alias field name 2018-09-14 21:29:31 -07:00
Hans
afa71a1471 feat(@angular/cli): add help for ng-new schematics
Before it was missing because we need to load the schematics engine for it.
I moved the ng update logic that did this to SchematicCommand.
2018-09-14 21:29:31 -07:00
Hans
66fbc59767 feat(@angular/cli): add long description and suboption option type 2018-09-06 07:37:48 -07:00
Hans
c8ddfbbe62 fix(@angular/cli): add options in help for architect commands
And fix a bug with json schema to Option array.
2018-09-06 07:37:48 -07:00
Hans
7ffd3b3033 refactor(@angular/cli): rename project to workspace and clean up
Removed unnecessary fields in interfaces, added some comments. Overall QoL.
2018-09-06 07:37:48 -07:00
Hans
de7ec84872 feat(@angular/cli): add --helpJson (or --help-json) too all commands
And other refactors.

The interface for the JSON is available in command.ts (the CommandDescription).
2018-09-06 07:37:48 -07:00
Yi Qi
0535e2b738 feat(@angular/cli): allow schematic command to specify the default colletion. 2018-08-24 15:02:44 -07:00
Hans Larsen
20b5d916d2 feat(@angular/cli): use STDERR to report warnings 2018-08-21 09:57:34 -07:00
Yi Qi
569acc40d8 feat(@angular/cli): allow specifying workflow and engineHost for schematic commands. 2018-08-08 20:39:43 -04:00
Charles Lyding
52c222ce41 refactor(@angular/cli): use compiler-cli peer dep to check typescript 2018-08-02 08:55:10 -04:00