Better support `ng new` use cases
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- angular, typescript
- Ambito
- cli, developer-experience
Direzione di ricerca
Inizia esaminando il comportamento esistente di ng new e ng generate e la documentazione collegata sulla struttura dei file degli Angular workspace. Confronta il flusso attuale di --create-application=false con i casi d'uso richiesti per applicazioni, librerie e più applicazioni. Il lavoro sarà considerato completato solo quando, prima dell'implementazione, sarà stata concordata una direzione per la terminologia dei workspace e i confini tra i comandi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
🚀 Feature request
/cc @mgechev
Command (mark with an x)
- new
- generate
Description
We should rethink some of the DX around ng new, as it was originally intended to make new Angular applications, but has expanded somewhat, particularly with monorepos. There are three things in particular which are a bit awkward:
- There is no way to create an Angular library (using the CLI) without using a monorepo structure. This may not be desired and makes library authorship a little more awkward.
- To use a monorepo structure, users are supposed to use
ng new --create-application=false, which is a pretty awkward syntax and doesn't make clear that this is intended for a monorepo/multi-app workspace. - Reevaluate the definition of "workspace". I can't speak for others, but I always interpreted a "workspace" as effectively a monorepository for Angular apps. Looking through docs, it seems that anything with an
angular.jsonfile is technically a "workspace", song newtechnically creates a workspace, even though it isn't a monorepo. I think this definition of "workspace" only really applies internally so we should think more critically about the language here.
Additional context: https://twitter.com/justinfagnani/status/1373336274384293889
Describe the solution you'd like
I'm thinking we could add an extra flag to ng new to decide whether to make a standalone application (ng new --type app), a multi-app workspace (ng new --type workspace, equivalent to today's ng new --create-application=false), or a standalone library (ng new --type library). Note that ng new --type app and ng new --type library both technically create a "workspace" per the above definition. We might want to either tweak the definition of "workspace" to mean "a multi-app Angular repo" or use something like ng new --type empty-workspace.
This would be distinguished from ng generate because ng new makes a new repository while ng generate works within an existing repository. Arguably we should merge ng new and ng generate (maybe inferring from file path context whether a new repository is required).
Some of the broader questions we should discuss:
- How should we position Angular "workspaces"? Are they for monorepositories or not?
- How should
ng newandng generatework together or be merged?
Describe alternatives you've considered
Apparently you can use ng-packagr to generate a library without a workspace, but you're losing a lot of the benefits of the CLI by doing so: https://twitter.com/Splaktar/status/1373373386802479105
- 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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di angular/angular-cli
-
area: @angular/build gemini-triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
angular/angular-cli#33955 ·
-
area: @angular/cli gemini-triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
angular/angular-cli#33055 · 1 commento · 3 reazioni ·
-
unit-test: with --coverage, a setup file's hooks reach only the first spec file of each worker Apertaarea: @angular/build gemini-triaged
Difficoltà 4/5 3-5 giorni Idoneità per principianti 72/100
angular/angular-cli#34137 ·
-
angular/build:library area: @angular/build gemini-triaged
angular/angular-cli#34131 · 1 assegnatario ·
-
angular/build:library area: @angular/build gemini-triaged
angular/angular-cli#34130 · 1 assegnatario ·
Tutte le issue di angular/angular-cli
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
dennys-bd/agent-hive#184 ·
-
Add: hunch Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
AbdelStark/awesome-typesafe#104 ·
-
ai-observability bug team/ai-observability
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
vicharanashala/fln#563 ·