create-awesome-node-app 0.6.7 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +188 -160
- package/dist/index.cjs +27 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +27 -12
- package/dist/index.js.map +1 -1
- package/package.json +7 -6
- package/dist/chunk-SIARO2CH.js +0 -123
package/README.md
CHANGED
|
@@ -1,294 +1,321 @@
|
|
|
1
1
|
<!--lint disable double-link awesome-heading awesome-git-repo-age awesome-toc-->
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
|
-
<h1>🌟 Create Awesome Node App 🚀</h1>
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
<h1>🌟 Create Awesome Node App</h1>
|
|
7
6
|
|
|
8
|
-
<strong>
|
|
9
|
-
|
|
7
|
+
<p><strong>The scaffolding CLI that gets out of your way.</strong><br/>
|
|
8
|
+
Pick a production-grade template, layer powerful addons, and ship a fully wired project in under a minute.</p>
|
|
10
9
|
|
|
11
10
|
[![npm][npmversion]][npmurl]
|
|
12
11
|
[![Downloads][npmdownloads]][npmurl]
|
|
12
|
+
[![Stars][starsbadge]][starsurl]
|
|
13
13
|
[![Commit Activity][commitactivitybadge]][commitactivityurl]
|
|
14
14
|
[![Bundle Size][bundlesizebadge]][bundlesizeurl]
|
|
15
15
|
[](https://github.com/vitejs/awesome-vite#get-started)
|
|
16
16
|
[![License: MIT][licensebadge]][licenseurl]
|
|
17
17
|
|
|
18
|
-
<!-- Extended badges (not all needed in npm fold) -->
|
|
19
|
-
|
|
20
18
|
[![Tests][testsbadge]][testsurl]
|
|
21
19
|
[![Lint][lintbadge]][linturl]
|
|
22
20
|
[![Typecheck][typecheckbadge]][typecheckurl]
|
|
23
21
|
[![Shellcheck][shellcheckbadge]][shellcheckurl]
|
|
24
22
|
[![Markdown][markdownlintbadge]][markdownlinturl]
|
|
23
|
+
|
|
25
24
|
<br />
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<a href="https://create-awesome-node-app.vercel.app/extensions" target="_blank">Extensions</a> ·
|
|
29
|
-
<a href="https://create-awesome-node-app.vercel.app/docs" target="_blank">Docs</a>
|
|
25
|
+
|
|
26
|
+
**[🌐 Official Site](https://create-awesome-node-app.vercel.app)** · [Templates](https://create-awesome-node-app.vercel.app/templates) · [Extensions](https://create-awesome-node-app.vercel.app/extensions) · [Docs](https://create-awesome-node-app.vercel.app/docs) · [GitHub](https://github.com/Create-Node-App/create-node-app)
|
|
30
27
|
|
|
31
28
|
</div>
|
|
32
29
|
|
|
33
|
-
|
|
30
|
+
---
|
|
34
31
|
|
|
35
|
-
|
|
36
|
-
<summary><strong>TL;DR (60s)</strong></summary>
|
|
32
|
+
## ⚡ Get started in 30 seconds
|
|
37
33
|
|
|
38
34
|
```bash
|
|
39
|
-
|
|
40
|
-
npm create awesome-node-app@latest my-app -- --interactive
|
|
41
|
-
|
|
42
|
-
# Direct + addons
|
|
43
|
-
npx create-awesome-node-app my-app \
|
|
44
|
-
--template react-vite-boilerplate \
|
|
45
|
-
--addons material-ui github-setup
|
|
35
|
+
npm create awesome-node-app@latest my-app
|
|
46
36
|
```
|
|
47
37
|
|
|
48
|
-
|
|
38
|
+
That's it. The interactive wizard walks you through picking a template, addons, and package manager — you're done before your coffee gets cold.
|
|
49
39
|
|
|
50
|
-
|
|
40
|
+
> **Want to go fully non-interactive?** Specify everything up front:
|
|
41
|
+
>
|
|
42
|
+
> ```bash
|
|
43
|
+
> npx create-awesome-node-app my-app \
|
|
44
|
+
> --template react-vite-boilerplate \
|
|
45
|
+
> --addons material-ui github-setup \
|
|
46
|
+
> --no-interactive
|
|
47
|
+
> ```
|
|
51
48
|
|
|
52
49
|
---
|
|
53
50
|
|
|
54
51
|
## ✨ Why Create Awesome Node App?
|
|
55
52
|
|
|
56
|
-
|
|
53
|
+
Most scaffolding tools lock you into a single opinionated stack. **CNA is different** — it's a _composable_ scaffolding engine built around the idea that your stack should be yours.
|
|
57
54
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
55
|
+
| | CNA | Traditional scaffolders |
|
|
56
|
+
| ----------------------------- | --- | ----------------------- |
|
|
57
|
+
| Mix templates + addons | ✅ | ❌ |
|
|
58
|
+
| Bring your own template URL | ✅ | ❌ |
|
|
59
|
+
| Interactive _and_ CI-friendly | ✅ | Partial |
|
|
60
|
+
| AGENTS.md for AI assistants | ✅ | ❌ |
|
|
61
|
+
| Extension ecosystem | ✅ | ❌ |
|
|
62
|
+
| Node 22 native | ✅ | Varies |
|
|
66
63
|
|
|
67
|
-
|
|
64
|
+
**One CLI. Any stack.**
|
|
68
65
|
|
|
69
66
|
---
|
|
70
67
|
|
|
71
|
-
##
|
|
68
|
+
## 🚀 What you get out of the box
|
|
72
69
|
|
|
73
|
-
|
|
70
|
+
Every project bootstrapped with CNA includes:
|
|
74
71
|
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
72
|
+
- 🧱 **Production-ready structure** — no empty folders or placeholder files
|
|
73
|
+
- 🔷 **TypeScript** — strict mode, ready to go
|
|
74
|
+
- 🧹 **ESLint + Prettier** — framework-specific rules pre-configured
|
|
75
|
+
- 🧪 **Testing setup** — vitest, jest, playwright, or cypress (depends on template)
|
|
76
|
+
- 🤖 **`AGENTS.md`** — a contract file so your AI coding assistant understands your project conventions
|
|
77
|
+
- 🔄 **GitHub Actions workflows** — CI, linting, and releases via addons
|
|
78
|
+
- 📦 **Your choice of package manager** — npm, yarn, or pnpm
|
|
79
79
|
|
|
80
80
|
---
|
|
81
81
|
|
|
82
|
-
##
|
|
82
|
+
## 🌐 Explore the Catalog
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
Visit **[create-awesome-node-app.vercel.app](https://create-awesome-node-app.vercel.app)** to visually browse the full ecosystem:
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
pnpm create awesome-node-app my-app --interactive
|
|
90
|
-
# or
|
|
91
|
-
yarn create awesome-node-app my-app --interactive
|
|
92
|
-
```
|
|
86
|
+
- 🗂 Templates organized by category (Frontend, Backend, Full Stack, Monorepo, Web Extension, UAT)
|
|
87
|
+
- 🧩 Extensions filterable by compatibility
|
|
88
|
+
- 📖 Guides on how the generation pipeline works
|
|
93
89
|
|
|
94
|
-
|
|
90
|
+
Or discover everything from your terminal:
|
|
95
91
|
|
|
96
92
|
```bash
|
|
97
|
-
|
|
98
|
-
create-awesome-node-app
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Minimal non‑interactive example:
|
|
93
|
+
# List all available templates
|
|
94
|
+
create-awesome-node-app --list-templates
|
|
102
95
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
--template nestjs-boilerplate \
|
|
106
|
-
--addons github-setup commitlint prettier
|
|
96
|
+
# List addons compatible with a specific template
|
|
97
|
+
create-awesome-node-app --template react-vite-boilerplate --list-addons
|
|
107
98
|
```
|
|
108
99
|
|
|
109
100
|
---
|
|
110
101
|
|
|
111
|
-
##
|
|
112
|
-
|
|
113
|
-
Launch with `--interactive` to:
|
|
102
|
+
## 🧱 Template Ecosystem
|
|
114
103
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
104
|
+
| Category | Example Templates |
|
|
105
|
+
| ---------------- | ----------------------------------------------------------------- |
|
|
106
|
+
| 🖥 Frontend | `react-vite-boilerplate` — React 18 + Vite + TS + ESLint + Vitest |
|
|
107
|
+
| 🔧 Backend | `nestjs-boilerplate` — NestJS + TS + ESLint + Jest |
|
|
108
|
+
| 🌐 Full Stack | `nextjs-starter` — Next.js + SSR + TS + Prettier |
|
|
109
|
+
| 🗂 Monorepo | `turborepo-boilerplate` — Turborepo + Changesets + TS |
|
|
110
|
+
| 🧩 Web Extension | `web-extension-react-boilerplate` — Cross-browser + React |
|
|
111
|
+
| 🧪 UAT / Testing | `webdriverio-boilerplate` — E2E automation scaffold |
|
|
119
112
|
|
|
120
|
-
|
|
113
|
+
→ Full catalog at **[create-awesome-node-app.vercel.app/templates](https://create-awesome-node-app.vercel.app/templates)**
|
|
121
114
|
|
|
122
115
|
---
|
|
123
116
|
|
|
124
|
-
##
|
|
117
|
+
## 🧩 Addons / Extensions
|
|
125
118
|
|
|
126
|
-
|
|
127
|
-
| ------------- | ------------------------------------------------- |
|
|
128
|
-
| Frontend | React Vite Boilerplate, Vue (via community), etc. |
|
|
129
|
-
| Backend | NestJS Boilerplate, Express variants |
|
|
130
|
-
| Full Stack | NextJS Starter (SSR + TS + ESLint + Prettier) |
|
|
131
|
-
| Monorepo | Turborepo Boilerplate (TypeScript + Changesets) |
|
|
132
|
-
| Web Extension | Cross‑browser modern extension bases |
|
|
133
|
-
| UAT / Testing | Playwright / Cypress ready setups |
|
|
119
|
+
Think of addons as _lego bricks_ — snap them onto any template to add exactly what you need:
|
|
134
120
|
|
|
135
|
-
|
|
121
|
+
| Category | Examples |
|
|
122
|
+
| --------------- | -------------------------------------------------------- |
|
|
123
|
+
| 🎨 UI Libraries | Material UI, Tailwind CSS, component libraries |
|
|
124
|
+
| 📊 State & Data | Jotai, tRPC, React Query, Zustand |
|
|
125
|
+
| 🔧 Tooling | GitHub Actions workflows, changesets, release automation |
|
|
126
|
+
| ✅ Code Quality | ESLint configs, Prettier, TypeScript strictness |
|
|
127
|
+
| 🧪 Testing | Playwright, Cypress, Vitest setups |
|
|
128
|
+
| 🛠 DX | Commit linting, conventional commits, environment setup |
|
|
136
129
|
|
|
137
|
-
|
|
130
|
+
Add any extension by slug or URL:
|
|
138
131
|
|
|
139
|
-
|
|
132
|
+
```bash
|
|
133
|
+
npx create-awesome-node-app my-app \
|
|
134
|
+
--template react-vite-boilerplate \
|
|
135
|
+
--addons material-ui github-setup commitlint \
|
|
136
|
+
--extend https://github.com/your-org/your-custom-extension
|
|
137
|
+
```
|
|
140
138
|
|
|
141
|
-
|
|
139
|
+
---
|
|
142
140
|
|
|
143
|
-
|
|
144
|
-
- State / Data: jotai, tRPC, React Query
|
|
145
|
-
- Tooling: GitHub workflows, commit linting, changesets, release automation
|
|
146
|
-
- Quality: ESLint configs, Prettier, TypeScript strictness
|
|
147
|
-
- Testing: Playwright / Cypress scaffolds, vitest
|
|
148
|
-
- DX: Environment setup, conventional commits, docs helpers
|
|
141
|
+
## 🤖 AI-Ready with `AGENTS.md`
|
|
149
142
|
|
|
150
|
-
|
|
143
|
+
CNA generates an **`AGENTS.md`** file in supported templates — a structured document that tells AI coding assistants (GitHub Copilot, Cursor, Claude, etc.) about:
|
|
151
144
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
create-awesome-node-app --template react-vite-boilerplate --list-addons
|
|
157
|
-
```
|
|
145
|
+
- Project purpose and conventions
|
|
146
|
+
- Directory layout and naming rules
|
|
147
|
+
- Scripts and how to use them
|
|
148
|
+
- Testing strategy and linting rules
|
|
158
149
|
|
|
159
|
-
|
|
150
|
+
This dramatically improves AI suggestion quality and speeds up onboarding for hybrid human+AI teams.
|
|
160
151
|
|
|
161
|
-
|
|
162
|
-
create-awesome-node-app my-app \
|
|
163
|
-
--template react-vite-boilerplate \
|
|
164
|
-
--addons material-ui github-setup \
|
|
165
|
-
--extend https://github.com/your-org/your-extension
|
|
166
|
-
```
|
|
152
|
+
→ Learn more at **[create-awesome-node-app.vercel.app/docs/agents-md](https://create-awesome-node-app.vercel.app/docs/agents-md)**
|
|
167
153
|
|
|
168
154
|
---
|
|
169
155
|
|
|
170
|
-
##
|
|
156
|
+
## 🧪 Interactive Mode Walkthrough
|
|
157
|
+
|
|
158
|
+
When you run CNA without flags (or with `--interactive`), the wizard guides you through:
|
|
171
159
|
|
|
172
|
-
|
|
160
|
+
1. **Project name** — set or confirm your app's name
|
|
161
|
+
2. **Package manager** — npm, yarn, or pnpm
|
|
162
|
+
3. **Category** — Frontend, Backend, Full Stack, Monorepo, Web Extension, UAT, or Custom
|
|
163
|
+
4. **Template** — pick from curated options with descriptions and keywords
|
|
164
|
+
5. **Extensions** — multi-select compatible addons grouped by purpose
|
|
165
|
+
6. **Custom extensions** — optionally extend with any additional URLs
|
|
173
166
|
|
|
174
|
-
|
|
167
|
+
The CLI composes a `templatesOrExtensions` pipeline and generates your workspace in one shot.
|
|
175
168
|
|
|
176
169
|
---
|
|
177
170
|
|
|
178
171
|
## ⚙️ Requirements
|
|
179
172
|
|
|
180
|
-
- **Node.js
|
|
181
|
-
-
|
|
173
|
+
- **Node.js >= 22** (enforced at startup — no silent failures)
|
|
174
|
+
- npm >= 7, yarn, or pnpm
|
|
182
175
|
|
|
183
|
-
We recommend
|
|
176
|
+
We recommend [`fnm`](https://github.com/Schniz/fnm) for fast Node version switching:
|
|
184
177
|
|
|
185
178
|
```bash
|
|
186
179
|
fnm use 22
|
|
180
|
+
npm create awesome-node-app@latest my-app
|
|
187
181
|
```
|
|
188
182
|
|
|
189
183
|
---
|
|
190
184
|
|
|
191
|
-
## 🔍 CLI
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
|
198
|
-
|
|
|
199
|
-
| `--
|
|
200
|
-
| `--
|
|
201
|
-
|
|
|
202
|
-
| `--
|
|
203
|
-
| `--
|
|
204
|
-
| `--
|
|
185
|
+
## 🔍 CLI Reference
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
Usage: create-awesome-node-app [project-directory] [options]
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
| Flag | Description |
|
|
192
|
+
| ---------------------------- | -------------------------------------------------- |
|
|
193
|
+
| `--interactive` | Force interactive wizard (default outside CI) |
|
|
194
|
+
| `--no-interactive` | Disable wizard — use flags only |
|
|
195
|
+
| `-t, --template <slug\|url>` | Template slug from catalog or remote GitHub URL |
|
|
196
|
+
| `--addons [slugs...]` | Space-separated addon slugs or URLs |
|
|
197
|
+
| `--extend [urls...]` | Extra extension URLs to layer on top |
|
|
198
|
+
| `--no-install` | Generate files without installing dependencies |
|
|
199
|
+
| `--use-yarn` | Use yarn instead of npm |
|
|
200
|
+
| `--use-pnpm` | Use pnpm instead of npm |
|
|
201
|
+
| `--list-templates` | Print all templates grouped by category |
|
|
202
|
+
| `--list-addons` | Print addons (optionally filtered by `--template`) |
|
|
203
|
+
| `-v, --verbose` | Output resolved generation config as JSON |
|
|
204
|
+
| `-i, --info` | Print Node, npm, OS environment diagnostics |
|
|
205
|
+
| `-V, --version` | Print CLI version |
|
|
206
|
+
| `-h, --help` | Show help |
|
|
205
207
|
|
|
206
208
|
---
|
|
207
209
|
|
|
208
|
-
## 🛠 Programmatic Usage
|
|
210
|
+
## 🛠 Programmatic Usage
|
|
209
211
|
|
|
210
|
-
|
|
212
|
+
Need to integrate CNA into your own tooling? The core is importable:
|
|
211
213
|
|
|
212
214
|
```ts
|
|
213
215
|
import { createNodeApp, getTemplateDirPath } from "@create-node-app/core";
|
|
214
216
|
```
|
|
215
217
|
|
|
218
|
+
> Note: The programmatic API is experimental and subject to change. Prefer the CLI for stable usage.
|
|
219
|
+
|
|
216
220
|
---
|
|
217
221
|
|
|
218
|
-
##
|
|
222
|
+
## ❓ FAQ
|
|
219
223
|
|
|
220
|
-
|
|
224
|
+
<details>
|
|
225
|
+
<summary><strong>Why another scaffolder?</strong></summary>
|
|
221
226
|
|
|
222
|
-
|
|
223
|
-
- ESLint (framework‑specific presets + consistency rules)
|
|
224
|
-
- Prettier formatting (where applicable)
|
|
225
|
-
- Testing support (varies by template: vitest, jest, e2e tooling)
|
|
226
|
-
- GitHub Actions friendly
|
|
227
|
-
- Conventional structure for CI/CD & release automation
|
|
227
|
+
Because most CLIs lock you into one stack. CNA lets you _compose_ your stack: pick a curated template, add modular extensions, and bring your own blueprints via URL. No vendor lock-in.
|
|
228
228
|
|
|
229
|
-
|
|
229
|
+
</details>
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
<details>
|
|
232
|
+
<summary><strong>Can I use my own template?</strong></summary>
|
|
232
233
|
|
|
233
|
-
|
|
234
|
-
Because most CLIs lock you into one stack. CNA lets you compose _your_ stack from curated templates + pluggable extensions.
|
|
234
|
+
Yes. Pass a GitHub URL (with optional subdirectory path) via `--template`:
|
|
235
235
|
|
|
236
|
-
|
|
237
|
-
|
|
236
|
+
```bash
|
|
237
|
+
npx create-awesome-node-app my-app \
|
|
238
|
+
--template https://github.com/your-org/your-repo/tree/main/template
|
|
239
|
+
```
|
|
238
240
|
|
|
239
|
-
|
|
240
|
-
They’re applied sequentially; conflicting changes should be resolved by your VCS if you customize heavily.
|
|
241
|
+
</details>
|
|
241
242
|
|
|
242
|
-
|
|
243
|
-
|
|
243
|
+
<details>
|
|
244
|
+
<summary><strong>Are addons order-sensitive?</strong></summary>
|
|
244
245
|
|
|
245
|
-
|
|
246
|
-
`AGENTS.md` provides a structured spec for AI tools to align with your conventions.
|
|
246
|
+
They're applied sequentially in the order you specify. If two addons touch the same file, later ones win — just like a git merge.
|
|
247
247
|
|
|
248
|
-
|
|
249
|
-
|
|
248
|
+
</details>
|
|
249
|
+
|
|
250
|
+
<details>
|
|
251
|
+
<summary><strong>Does it support monorepos?</strong></summary>
|
|
252
|
+
|
|
253
|
+
Yes. Use the `turborepo-boilerplate` template for a multi-package workspace with Turborepo, Changesets, and shared TypeScript/ESLint configs ready to go.
|
|
254
|
+
|
|
255
|
+
</details>
|
|
256
|
+
|
|
257
|
+
<details>
|
|
258
|
+
<summary><strong>What about CI environments?</strong></summary>
|
|
259
|
+
|
|
260
|
+
CNA auto-detects CI and disables interactive mode. All options can be passed via flags for fully scripted generation — perfect for bootstrapping in automation pipelines.
|
|
261
|
+
|
|
262
|
+
</details>
|
|
263
|
+
|
|
264
|
+
<details>
|
|
265
|
+
<summary><strong>Is Node 22 really required?</strong></summary>
|
|
266
|
+
|
|
267
|
+
Yes — we target the latest LTS runtime for native ESM support, performance, and modern language features. Use `fnm` or `nvm` to switch quickly if needed.
|
|
268
|
+
|
|
269
|
+
</details>
|
|
250
270
|
|
|
251
271
|
---
|
|
252
272
|
|
|
253
|
-
##
|
|
273
|
+
## 🗺 Roadmap
|
|
254
274
|
|
|
255
|
-
|
|
275
|
+
- Remix and SvelteKit template variants
|
|
276
|
+
- Additional testing packs (contract, performance, load testing)
|
|
277
|
+
- Template version pinning and diff-based upgrade paths
|
|
278
|
+
- Rich template analytics and usage metrics
|
|
256
279
|
|
|
257
|
-
|
|
280
|
+
→ Track progress in [Issues](https://github.com/Create-Node-App/create-node-app/issues) and [Discussions](https://github.com/Create-Node-App/create-node-app/discussions).
|
|
258
281
|
|
|
259
282
|
---
|
|
260
283
|
|
|
261
|
-
##
|
|
284
|
+
## 🤝 Contributing
|
|
262
285
|
|
|
263
|
-
|
|
264
|
-
- Additional testing packs (contract / performance harnesses)
|
|
265
|
-
- Rich analytics for generation metrics
|
|
266
|
-
- Template version pinning & diff upgrade paths
|
|
286
|
+
Contributions are what make CNA better — templates, addons, bug fixes, docs, ideas. All welcome!
|
|
267
287
|
|
|
268
|
-
|
|
288
|
+
- **Main repo:** [github.com/Create-Node-App/create-node-app](https://github.com/Create-Node-App/create-node-app)
|
|
289
|
+
- **Template & extension data:** [github.com/Create-Node-App/cna-templates](https://github.com/Create-Node-App/cna-templates)
|
|
290
|
+
- **Contributing guide:** [CONTRIBUTING.md](https://github.com/Create-Node-App/create-node-app/blob/main/CONTRIBUTING.md)
|
|
269
291
|
|
|
270
292
|
---
|
|
271
293
|
|
|
272
294
|
## 📜 License
|
|
273
295
|
|
|
274
|
-
MIT © Create Node App Contributors
|
|
296
|
+
MIT © [Create Node App Contributors](https://github.com/Create-Node-App/create-node-app/graphs/contributors)
|
|
275
297
|
|
|
276
298
|
---
|
|
277
299
|
|
|
278
300
|
<div align="center">
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
301
|
+
|
|
302
|
+
**[🌐 create-awesome-node-app.vercel.app](https://create-awesome-node-app.vercel.app)**
|
|
303
|
+
|
|
304
|
+
_Built with ♥ for developers who value speed, clarity, and composability._
|
|
305
|
+
|
|
282
306
|
</div>
|
|
283
307
|
|
|
308
|
+
<!-- Reference links -->
|
|
309
|
+
|
|
284
310
|
[testsbadge]: https://github.com/Create-Node-App/create-node-app/actions/workflows/test.yml/badge.svg
|
|
285
311
|
[lintbadge]: https://github.com/Create-Node-App/create-node-app/actions/workflows/lint.yml/badge.svg
|
|
286
312
|
[typecheckbadge]: https://github.com/Create-Node-App/create-node-app/actions/workflows/type-check.yml/badge.svg
|
|
287
313
|
[shellcheckbadge]: https://github.com/Create-Node-App/create-node-app/actions/workflows/shellcheck.yml/badge.svg
|
|
288
314
|
[markdownlintbadge]: https://github.com/Create-Node-App/create-node-app/actions/workflows/markdownlint.yml/badge.svg
|
|
289
|
-
[npmversion]: https://img.shields.io/npm/v/create-awesome-node-app.svg?
|
|
290
|
-
[npmdownloads]: https://img.shields.io/npm/dm/create-awesome-node-app.svg?
|
|
291
|
-
[
|
|
315
|
+
[npmversion]: https://img.shields.io/npm/v/create-awesome-node-app.svg?style=flat-square&color=cb3837
|
|
316
|
+
[npmdownloads]: https://img.shields.io/npm/dm/create-awesome-node-app.svg?style=flat-square&color=cb3837
|
|
317
|
+
[starsbadge]: https://img.shields.io/github/stars/Create-Node-App/create-node-app?style=flat-square&color=yellow
|
|
318
|
+
[licensebadge]: https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square
|
|
292
319
|
[testsurl]: https://github.com/Create-Node-App/create-node-app/actions/workflows/test.yml
|
|
293
320
|
[linturl]: https://github.com/Create-Node-App/create-node-app/actions/workflows/lint.yml
|
|
294
321
|
[typecheckurl]: https://github.com/Create-Node-App/create-node-app/actions/workflows/type-check.yml
|
|
@@ -296,7 +323,8 @@ MIT © Create Node App Contributors – see [LICENSE][licenseurl]
|
|
|
296
323
|
[markdownlinturl]: https://github.com/Create-Node-App/create-node-app/actions/workflows/markdownlint.yml
|
|
297
324
|
[npmurl]: https://www.npmjs.com/package/create-awesome-node-app
|
|
298
325
|
[licenseurl]: https://github.com/Create-Node-App/create-node-app/blob/main/LICENSE
|
|
299
|
-
[
|
|
326
|
+
[starsurl]: https://github.com/Create-Node-App/create-node-app/stargazers
|
|
327
|
+
[commitactivitybadge]: https://img.shields.io/github/commit-activity/m/Create-Node-App/create-node-app?style=flat-square&logo=github&label=commits
|
|
300
328
|
[commitactivityurl]: https://github.com/Create-Node-App/create-node-app/pulse
|
|
301
|
-
[bundlesizebadge]: https://img.shields.io/bundlephobia/minzip/create-awesome-node-app?label=
|
|
329
|
+
[bundlesizebadge]: https://img.shields.io/bundlephobia/minzip/create-awesome-node-app?style=flat-square&label=size
|
|
302
330
|
[bundlesizeurl]: https://bundlephobia.com/package/create-awesome-node-app
|
package/dist/index.cjs
CHANGED
|
@@ -1681,7 +1681,9 @@ var getExtensionsGroupedByCategory = async (type, cliArgs) => {
|
|
|
1681
1681
|
};
|
|
1682
1682
|
|
|
1683
1683
|
// src/options.ts
|
|
1684
|
-
import_prompts.default.override(
|
|
1684
|
+
import_prompts.default.override(
|
|
1685
|
+
(0, import_yargs.default)(process.argv.slice(2)).help(false).version(false).argv
|
|
1686
|
+
);
|
|
1685
1687
|
var PACKAGE_MANAGERS = ["npm", "yarn", "pnpm"];
|
|
1686
1688
|
var isValidUrl = (url) => {
|
|
1687
1689
|
try {
|
|
@@ -1925,19 +1927,24 @@ var processInteractiveOptions = async (options) => {
|
|
|
1925
1927
|
}
|
|
1926
1928
|
return nextOptions;
|
|
1927
1929
|
};
|
|
1930
|
+
var resolveInteractiveMode = (options, ci = import_ci_info.isCI) => {
|
|
1931
|
+
const explicit = options.interactive;
|
|
1932
|
+
if (explicit === true) return true;
|
|
1933
|
+
if (explicit === false) return false;
|
|
1934
|
+
return !ci;
|
|
1935
|
+
};
|
|
1928
1936
|
var getCnaOptions = async (options) => {
|
|
1929
|
-
const shouldUseInteractiveMode =
|
|
1937
|
+
const shouldUseInteractiveMode = resolveInteractiveMode(options);
|
|
1930
1938
|
if (shouldUseInteractiveMode) {
|
|
1931
|
-
return processInteractiveOptions(options);
|
|
1932
|
-
} else {
|
|
1933
|
-
return processNonInteractiveOptions(options);
|
|
1939
|
+
return processInteractiveOptions({ ...options, interactive: true });
|
|
1934
1940
|
}
|
|
1941
|
+
return processNonInteractiveOptions(options);
|
|
1935
1942
|
};
|
|
1936
1943
|
|
|
1937
1944
|
// package.json
|
|
1938
1945
|
var package_default = {
|
|
1939
1946
|
name: "create-awesome-node-app",
|
|
1940
|
-
version: "0.
|
|
1947
|
+
version: "0.7.1",
|
|
1941
1948
|
type: "module",
|
|
1942
1949
|
description: "Command line tool to create Node apps with a lot of different templates and extensions.",
|
|
1943
1950
|
license: "MIT",
|
|
@@ -1991,8 +1998,8 @@ var package_default = {
|
|
|
1991
1998
|
"test:src": "npm run test"
|
|
1992
1999
|
},
|
|
1993
2000
|
dependencies: {
|
|
1994
|
-
"@create-node-app/core": "^0.5.
|
|
1995
|
-
axios: "^1.
|
|
2001
|
+
"@create-node-app/core": "^0.5.7",
|
|
2002
|
+
axios: "^1.13.6",
|
|
1996
2003
|
"ci-info": "^4.3.0",
|
|
1997
2004
|
commander: "^14.0.1",
|
|
1998
2005
|
prompts: "^2.4.2",
|
|
@@ -2000,16 +2007,17 @@ var package_default = {
|
|
|
2000
2007
|
yargs: "^18.0.0"
|
|
2001
2008
|
},
|
|
2002
2009
|
devDependencies: {
|
|
2010
|
+
"@create-node-app/core": "^0.5.7",
|
|
2003
2011
|
"@create-node-app/eslint-config-ts": "*",
|
|
2004
2012
|
"@types/node": "^24.5.2",
|
|
2005
2013
|
"@types/prompts": "^2.4.9",
|
|
2006
|
-
"@types/yargs": "^17.0.33",
|
|
2007
2014
|
"@types/semver": "^7.5.8",
|
|
2008
|
-
|
|
2015
|
+
"@types/yargs": "^17.0.33",
|
|
2009
2016
|
eslint: "^9.35.0",
|
|
2010
2017
|
"eslint-config-turbo": "^2.5.6",
|
|
2011
|
-
tsup: "^8.5.0",
|
|
2012
2018
|
"eslint-plugin-turbo": "^2.5.6",
|
|
2019
|
+
nock: "^13.5.4",
|
|
2020
|
+
tsup: "^8.5.0",
|
|
2013
2021
|
tsx: "^4.19.0"
|
|
2014
2022
|
}
|
|
2015
2023
|
};
|
|
@@ -2103,7 +2111,14 @@ var main = async () => {
|
|
|
2103
2111
|
).option(
|
|
2104
2112
|
"--addons [extensions...]",
|
|
2105
2113
|
"specify extensions to apply for the boilerplate generation"
|
|
2106
|
-
).option("--use-yarn", "use yarn instead of npm or pnpm").option("--use-pnpm", "use pnpm instead of yarn or npm").option(
|
|
2114
|
+
).option("--use-yarn", "use yarn instead of npm or pnpm").option("--use-pnpm", "use pnpm instead of yarn or npm").option(
|
|
2115
|
+
"--interactive",
|
|
2116
|
+
"force interactive mode (default outside CI unless --no-interactive)",
|
|
2117
|
+
void 0
|
|
2118
|
+
).option(
|
|
2119
|
+
"--no-interactive",
|
|
2120
|
+
"disable interactive mode (use only flags / non-interactive flow)"
|
|
2121
|
+
).option("--list-templates", "list all available templates").option("--list-addons", "list all available addons").action((providedProjectName) => {
|
|
2107
2122
|
projectName = providedProjectName || projectName;
|
|
2108
2123
|
});
|
|
2109
2124
|
program.parse(process.argv);
|