Running `ng version` outside an Angular project has confusing output

Aperta
#16,549 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
angular, typescript
Ambito
cli

Direzione di ricerca

Riproduci i due comandi ng version dell’issue, sia all’interno che all’esterno di services/ng-frontend/, e traccia il punto di ingresso del comando della versione di Angular CLI. La modifica è completata quando l’output al di fuori di un progetto Angular indica chiaramente che non è stato rilevato alcun progetto e non fa apparire le versioni globali come versioni del progetto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

area: @angular/cli freq1: low severity1: confusing type: bug/fix

🐞 Bug report

Command
  • update
  • version
Is this a regression?

No

Description

I have a monorepo where I am adding an Angular project. As a result, it exists in a subdirectory. Since many tools (such as ng) expect the project to be the working directory, I often use the pattern (cd path/to/subproject/ && run some tool). The subshell means I'm returned back to my original directory.

This pattern does not play well with ng version and ng update. I was trying to update to version 9 prerelease and saw the following:

$ (cd services/ng-frontend/ && ng update @angular/cli @angular/core --next)
# Successful update...
$ ng version
     _                      _                 ____ _     ___                                            
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|                                           
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |                                            
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |                                            
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|                                           
                |___/                                                                                   
                                                                                                        
                                                                                                        
Angular CLI: 8.3.21                                                                                     
Node: 13.5.0                                                                                            
OS: linux x64                                                                                           
Angular:                                                                                                
...                                                                                                     
                                                                                                        
Package                      Version                                                                    
------------------------------------------------------                                                  
@angular-devkit/architect    0.803.21                                                                   
@angular-devkit/core         8.3.21
@angular-devkit/schematics   8.3.21
@schematics/angular          8.3.21
@schematics/update           0.803.21
rxjs                         6.4.0

This was confusing and made me think the update failed, however the update was actually fine. My mistake here was running ng version in the root of my monorepo, rather than the Angular project. After noticing this I tried:

$ (cd services/ng-frontend/ && ng version)
     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 9.0.0-rc.7
Node: 13.5.0
OS: linux x64

Angular: 9.0.0-rc.7
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.900.0-rc.7
@angular-devkit/build-angular     0.900.0-rc.7
@angular-devkit/build-optimizer   0.900.0-rc.7
@angular-devkit/build-webpack     0.900.0-rc.7
@angular-devkit/core              9.0.0-rc.7
@angular-devkit/schematics        9.0.0-rc.7
@ngtools/webpack                  9.0.0-rc.7
@schematics/angular               9.0.0-rc.7
@schematics/update                0.900.0-rc.7
rxjs                              6.5.4
typescript                        3.6.4
webpack                           4.41.2

Which is what I expected post-update.

IMHO this dichotomy is confusing. When the user is in an Angular project, it lists versions of that project. When outside an Angular project, it lists the global versions and it is very easy to look at the wrong one.

I'm not sure what the ideal solution to this problem would be. There could be two different commands, such as an ng global-version and ng project-version, but this might add too much additional complexity to be worth it. Maybe the output could simply be updated to be more clear? Such as having some big red text saying "No Angular project detected at $PWD"?

Lingua principale
TypeScript
Stelle
27k
Fork
11.8k
Merge medio
16h 35m
PR unite (30g)
176

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di angular/angular-cli

Tutte le issue di angular/angular-cli

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.