angular / angular/angular-cli

Show setup options during `ng new`

Open
#22,978 7 comments 30 reactions 0 assignees View on GitHub
area: @schematics/angular feature
Dominant language
TypeScript
Stars
27k
Forks
11.8k
Avg merge
14h 23m
Merged PRs (30d)
162

Description

# 🚀 Feature request

### Command (mark with an `x`)

- [x] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] extract-i18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

### Description

It's not obvious to people that we provide integrations with testing and linting solutions even though they exist. Folks have to run `ng e2e` to see the supported testing frameworks and after that run `ng add [solution]`. Alternatively, for linting they have to run `ng lint` to get ESLint installed, but none of the tools comes by default.

### Describe the solution you'd like

To better inform developers about the integrations we provide, we can update our setup experience. When folks create a new project we can show two prompts:

```
- Which end-to-end testing framework you want to use:
- Cypress
- Nightwatch
- WebDriver
- None
- Do you want ESLint? (Y/n)
```

If folks select `None` and `n` they should still be able to add e2e/linting to their projects with `ng add [schematics]`. If people select an integration we can automatically run `ng add [...]` at setup time for them.

Contributor guide

Open the contributing guide

Research direction

Start with the `ng new` setup flow and trace how `ng add`, `ng e2e`, and `ng lint` currently expose integrations. Define the prompts and their choices, then verify that selecting an integration invokes the expected setup while `None` or `n` leaves projects usable with later `ng add` commands.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, cypress, eslint, typescript
Domain
cli, developer-experience, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.