Show setup options during `ng new`
- 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
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