Skip to content

Commit c7dabda

Browse files
committed
feat(create): rename bundler option to build tool
1 parent 60ada47 commit c7dabda

28 files changed

Lines changed: 67 additions & 68 deletions

.agents/index.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ node ../cli/packages/cli/dist/index.js create my-app
4949
| Add-on | Plugin that extends apps (auth, DB, etc) | `--add-ons` |
5050
| Template | Reusable project template | `--template` |
5151
| Framework | React or Solid | `--framework` |
52-
| Bundler | Vite (default) or Rsbuild | `--bundler` |
52+
| Build tool | Vite (default) or Rsbuild | `--build-tool` |
5353

5454
## CLI Commands
5555

@@ -71,7 +71,7 @@ node ../cli/packages/cli/dist/index.js create my-app
7171
| -------------------- | ------------------------------------------------------- |
7272
| `--add-ons <ids>` | Comma-separated add-on IDs |
7373
| `--framework <name>` | React or Solid |
74-
| `--bundler <name>` | Vite (default) or Rsbuild |
74+
| `--build-tool <name>` | Vite (default) or Rsbuild |
7575
| `--toolchain <id>` | Toolchain (use `--list-add-ons` to see options) |
7676
| `--deployment <id>` | Deployment target (use `--list-add-ons` to see options) |
7777
| `--template <url-or-id>` | Use template URL/path or built-in ID |
@@ -134,7 +134,7 @@ This project uses [TanStack Intent](https://github.com/TanStack/intent). Run `np
134134
<!-- intent-skills:start -->
135135
# Skill mappings — when working in these areas, load the linked skill file into context.
136136
skills:
137-
- task: "scaffold a new TanStack app with create command, framework, bundler, template, toolchain, deployment, or add-on flags"
137+
- task: "scaffold a new TanStack app with create command, framework, build tool, template, toolchain, deployment, or add-on flags"
138138
load: "packages/cli/skills/create-app-scaffold/SKILL.md"
139139
- task: "add add-ons to an existing project using tanstack add"
140140
load: "packages/cli/skills/add-addons-existing-app/SKILL.md"
@@ -145,4 +145,3 @@ skills:
145145
- task: "author, compile, or dev-watch custom add-ons or templates"
146146
load: "packages/cli/skills/maintain-custom-addons-dev-watch/SKILL.md"
147147
<!-- intent-skills:end -->
148-

.changeset/green-builders-rise.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
'@tanstack/cli': minor
44
---
55

6-
Add first-class Rsbuild bundler support for React and Solid TanStack Start and
6+
Add first-class Rsbuild build tool support for React and Solid TanStack Start and
77
router-only scaffolds, including Tailwind and ESLint/Biome toolchains.

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ npx @tanstack/cli create my-app
4444

4545
- **TanStack Start** - Full-stack SSR framework (default)
4646
- **TanStack Router** - Type-safe routing (`--router-only` for SPA)
47-
- **Vite or Rsbuild** - Choose the bundler for React and Solid projects
47+
- **Vite or Rsbuild** - Choose the build tool for React and Solid projects
4848
- **Add-ons** - Auth, database, deployment, monitoring, and more
4949
- **CLI Introspection** - Agent-friendly discovery via JSON CLI output
5050

@@ -61,7 +61,7 @@ npx @tanstack/cli create my-app --blank -y
6161
npx @tanstack/cli create my-app --router-only
6262

6363
# Create with Rsbuild
64-
npx @tanstack/cli create my-app --bundler rsbuild -y
64+
npx @tanstack/cli create my-app --build-tool rsbuild -y
6565

6666
# With add-ons
6767
npx @tanstack/cli create my-app --add-ons clerk,drizzle,tanstack-query
@@ -88,7 +88,7 @@ npx @tanstack/cli search-docs "loaders" --library router --framework react --jso
8888

8989
TanStack CLI sends anonymous usage telemetry by default.
9090

91-
- Sent: command usage, durations, selected framework/bundler/package manager/add-on ids, and coarse result metadata
91+
- Sent: command usage, durations, selected framework/build tool/package manager/add-on ids, and coarse result metadata
9292
- Never sent: project names, file paths, target directories, raw search queries, raw template URLs/paths, add-on config values, env vars, or raw error messages
9393
- Disabled automatically in `CI`, or when `DO_NOT_TRACK=1` or `TANSTACK_CLI_TELEMETRY_DISABLED=1`
9494

docs/cli-reference.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ tanstack create [project-name] [options]
1818
| `--blank` | Create a minimal one-route Start project without default starter UI, examples, Tailwind, devtools, or a test stack |
1919
| `--package-manager <pm>` | `npm`, `pnpm`, `yarn`, `bun`, `deno` |
2020
| `--framework <name>` | `React`, `Solid` |
21-
| `--bundler <name>` | `vite` (default), `rsbuild` |
21+
| `--build-tool <name>` | `vite` (default), `rsbuild` |
2222
| `--router-only` | Create file-based Router-only app without TanStack Start (add-ons/deployment/template disabled) |
2323
| `--toolchain <id>` | Toolchain add-on (use `--list-add-ons` to see options) |
2424
| `--deployment <id>` | Deployment add-on (use `--list-add-ons` to see options) |
@@ -42,8 +42,8 @@ tanstack create my-app --blank -y
4242
tanstack create my-app --blank --deployment cloudflare -y
4343
tanstack create my-app --add-ons clerk,drizzle,tanstack-query
4444
tanstack create my-app --router-only --toolchain eslint --no-examples
45-
tanstack create my-app --bundler rsbuild -y
46-
tanstack create my-app --framework Solid --bundler rsbuild --router-only --blank --toolchain biome -y
45+
tanstack create my-app --build-tool rsbuild -y
46+
tanstack create my-app --framework Solid --build-tool rsbuild --router-only --blank --toolchain biome -y
4747
tanstack create my-app --template https://example.com/template.json
4848
tanstack create my-app --template ecommerce
4949
tanstack create --list-add-ons --framework React --json

docs/quick-start.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ npx @tanstack/cli create my-app --add-ons tanstack-query,clerk,drizzle -y
2929
# Router-only SPA (no SSR)
3030
npx @tanstack/cli create my-app --router-only -y
3131

32-
# Rsbuild instead of the default Vite bundler
33-
npx @tanstack/cli create my-app --bundler rsbuild -y
32+
# Rsbuild instead of the default Vite build tool
33+
npx @tanstack/cli create my-app --build-tool rsbuild -y
3434

3535
# Minimal router-only Rsbuild app
36-
npx @tanstack/cli create my-app --bundler rsbuild --router-only --blank -y
36+
npx @tanstack/cli create my-app --build-tool rsbuild --router-only --blank -y
3737
```
3838

3939
Blank projects omit the default starter interface, examples, Tailwind,

packages/cli/skills/create-app-scaffold/SKILL.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: create-app-scaffold
33
description: >
4-
Scaffold a TanStack app with tanstack create using --framework, --bundler, --template,
4+
Scaffold a TanStack app with tanstack create using --framework, --build-tool, --template,
55
--toolchain, --deployment, --add-ons, --blank, and --router-only. Covers flag
66
compatibility, non-interactive defaults, and intent-preserving command
77
construction.
@@ -36,7 +36,7 @@ fits its initial compatibility surface.
3636
```bash
3737
npx @tanstack/cli create acme-web \
3838
--framework react \
39-
--bundler rsbuild \
39+
--build-tool rsbuild \
4040
--toolchain biome \
4141
-y
4242
```
@@ -175,6 +175,6 @@ See also: query-docs-library-metadata/SKILL.md § Common Mistakes
175175

176176
- [Create flag compatibility matrix](references/create-flag-compatibility-matrix.md)
177177
- [Framework adapter options](references/framework-adapters.md)
178-
- [Bundler options](references/bundlers.md)
178+
- [Build tool options](references/bundlers.md)
179179
- [Deployment provider options](references/deployment-providers.md)
180180
- [Toolchain options](references/toolchains.md)
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Bundler Options
1+
# Build Tool Options
22

33
Targets `@tanstack/cli` v0.71.0.
44

@@ -10,8 +10,8 @@ Targets `@tanstack/cli` v0.71.0.
1010
## Usage
1111

1212
```bash
13-
npx @tanstack/cli create app --framework react --bundler vite -y
14-
npx @tanstack/cli create app --framework solid --bundler rsbuild -y
13+
npx @tanstack/cli create app --framework react --build-tool vite -y
14+
npx @tanstack/cli create app --framework solid --build-tool rsbuild -y
1515
```
1616

1717
Rsbuild supports full TanStack Start and router-only projects, including the
@@ -20,8 +20,8 @@ Biome. It does not currently support templates, deployment adapters, or
2020
catalog business/example add-ons. `tanstack add` is limited to ESLint/Biome in
2121
Rsbuild projects.
2222

23-
Use the bundler-aware catalog view before constructing an Rsbuild command:
23+
Use the build-tool-aware catalog view before constructing an Rsbuild command:
2424

2525
```bash
26-
npx @tanstack/cli create --list-add-ons --bundler rsbuild --json
26+
npx @tanstack/cli create --list-add-ons --build-tool rsbuild --json
2727
```

packages/cli/skills/create-app-scaffold/references/create-flag-compatibility-matrix.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Targets `@tanstack/cli` v0.71.0.
77
| Flag | Works with normal create | Works with `--router-only` | Notes |
88
|---|---|---|---|
99
| `--framework` | yes | yes | Framework is still honored in both modes. |
10-
| `--bundler` | yes | yes | `vite` is the default; `rsbuild` supports React and Solid. |
10+
| `--build-tool` | yes | yes | `vite` is the default; `rsbuild` supports React and Solid. |
1111
| `--toolchain` | yes | yes | Toolchain selection remains available. |
1212
| `--add-ons` | yes | no | Ignored in router-only mode. |
1313
| `--deployment` | yes | no | Ignored in router-only mode. |
@@ -16,15 +16,15 @@ Targets `@tanstack/cli` v0.71.0.
1616
| `--blank` | yes | yes | Omits starter UI, examples, Tailwind, devtools, and test tooling unless an explicit integration requires them. Cannot be combined with a template, `--examples`, or `--tailwind`. |
1717
| `--tailwind` / `--no-tailwind` | deprecated/ignored | deprecated/ignored | Standard scaffolds enable Tailwind; use `--blank` for the supported minimal preset. |
1818

19-
With `--bundler rsbuild`, only toolchain catalog entries are compatible.
19+
With `--build-tool rsbuild`, only toolchain catalog entries are compatible.
2020
Templates, deployments, and business/example add-ons are rejected. Built-in
2121
demo pages controlled by `--examples` remain available.
2222

2323
Source: `packages/cli/src/command-line.ts:337`
2424

2525
## Recommended command construction order
2626

27-
1. Choose framework and bundler.
27+
1. Choose framework and build tool.
2828
2. Choose mode (`--router-only` or full scaffold).
2929
3. If using Vite full scaffold, resolve add-ons, template, and deployment.
3030
4. Add the toolchain and use `-y` only after flags are final.
@@ -42,5 +42,5 @@ npx @tanstack/cli create app --blank --framework react --deployment cloudflare -
4242
npx @tanstack/cli create app --router-only --framework react --toolchain biome -y
4343

4444
# Rsbuild preset
45-
npx @tanstack/cli create app --framework solid --bundler rsbuild --toolchain biome -y
45+
npx @tanstack/cli create app --framework solid --build-tool rsbuild --toolchain biome -y
4646
```

packages/cli/src/cli.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ export function getCreateTelemetryProperties(projectName: string, options: CliOp
183183
: undefined,
184184
command_variant: getCreateCommandVariant(options),
185185
deployment: options.deployment ? sanitizeId(options.deployment) : undefined,
186-
bundler: options.bundler ? sanitizeId(options.bundler) : undefined,
186+
bundler: options.buildTool ? sanitizeId(options.buildTool) : undefined,
187187
examples: options.examples,
188188
blank: !!options.blank,
189189
framework: options.framework ? sanitizeId(options.framework) : undefined,
@@ -311,7 +311,7 @@ export function cli({
311311
lines.push(` Location: ${finalOptions.targetDir}`)
312312
lines.push(` Framework: ${finalOptions.framework.name}`)
313313
lines.push(
314-
` Bundler: ${resolveBundler(finalOptions.framework, finalOptions.bundler).name}`,
314+
` Build tool: ${resolveBundler(finalOptions.framework, finalOptions.bundler).name}`,
315315
)
316316
lines.push(` Mode: ${finalOptions.mode}`)
317317
if (finalOptions.projectPreset === 'blank') {
@@ -674,7 +674,7 @@ export function cli({
674674
const addOns = await getAllAddOns(
675675
getFrameworkByName(options.framework || defaultFramework || 'React')!,
676676
defaultMode,
677-
options.bundler,
677+
options.buildTool,
678678
)
679679
const visibleAddOns = addOns.filter((a) => !forcedAddOns.includes(a.id))
680680
telemetry.mergeProperties({
@@ -720,7 +720,7 @@ export function cli({
720720
const addOns = await getAllAddOns(
721721
getFrameworkByName(options.framework || defaultFramework || 'React')!,
722722
defaultMode,
723-
options.bundler,
723+
options.buildTool,
724724
)
725725
const addOn =
726726
addOns.find((a) => a.id === options.addonDetails) ??
@@ -975,20 +975,20 @@ export function cli({
975975

976976
cmd
977977
.option<string>(
978-
`--bundler <${Array.from(bundlers).join('|')}>`,
979-
'select the project bundler',
978+
`--build-tool <${Array.from(bundlers).join('|')}>`,
979+
'select the project build tool',
980980
(value) => {
981-
const bundler = Array.from(bundlers).find(
981+
const buildTool = Array.from(bundlers).find(
982982
(item) => item.toLowerCase() === value.toLowerCase(),
983983
)
984-
if (!bundler) {
984+
if (!buildTool) {
985985
throw new InvalidArgumentError(
986-
`Invalid bundler: ${value}. The following are allowed: ${Array.from(
986+
`Invalid build tool: ${value}. The following are allowed: ${Array.from(
987987
bundlers,
988988
).join(', ')}`,
989989
)
990990
}
991-
return bundler
991+
return buildTool
992992
},
993993
)
994994
.option(

packages/cli/src/command-line.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ export function validateLegacyCreateFlags(cliOptions: CliOptions): {
325325
legacyTemplate !== undefined &&
326326
SUPPORTED_LEGACY_TEMPLATES.has(legacyTemplate)
327327

328-
if (cliOptions.bundler?.toLowerCase() === 'rsbuild') {
328+
if (cliOptions.buildTool?.toLowerCase() === 'rsbuild') {
329329
if (
330330
cliOptions.starter ||
331331
(cliOptions.template && !isSupportedLegacyTemplate) ||
@@ -513,8 +513,8 @@ export async function normalizeOptions(
513513
const initialFramework = getFrameworkById(preferredFramework)
514514
let framework = initialFramework!
515515
const bundler = initialFramework
516-
? resolveBundler(initialFramework, cliOptions.bundler).id
517-
: (cliOptions.bundler ?? 'vite')
516+
? resolveBundler(initialFramework, cliOptions.buildTool).id
517+
: (cliOptions.buildTool ?? 'vite')
518518

519519
if (bundler === 'rsbuild') {
520520
if (

0 commit comments

Comments
 (0)