create-rsbuild 2.2.13 → 2.2.14

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 CHANGED
@@ -41,63 +41,96 @@ The following commands create a project without interactive prompts:
41
41
  - **Vanilla**
42
42
 
43
43
  ```bash
44
+ # Basic (JavaScript)
44
45
  npx -y create-rsbuild@latest my-app -t vanilla-js
46
+
47
+ # Basic (TypeScript)
45
48
  npx -y create-rsbuild@latest my-app -t vanilla-ts
46
49
  ```
47
50
 
48
51
  - **React**
49
52
 
50
53
  ```bash
54
+ # Basic (JavaScript)
51
55
  npx -y create-rsbuild@latest my-app -t react-js
56
+
57
+ # Basic (TypeScript)
52
58
  npx -y create-rsbuild@latest my-app -t react-ts
59
+
60
+ # TanStack Start (with Rsbuild)
61
+ npx -y create-rsbuild@latest my-app -t tanstack-start-react
53
62
  ```
54
63
 
55
64
  - **Vue**
56
65
 
57
66
  ```bash
67
+ # Basic (JavaScript)
58
68
  npx -y create-rsbuild@latest my-app -t vue-js
69
+
70
+ # Basic (TypeScript)
59
71
  npx -y create-rsbuild@latest my-app -t vue-ts
60
72
  ```
61
73
 
62
74
  - **Lit**
63
75
 
64
76
  ```bash
77
+ # Basic (JavaScript)
65
78
  npx -y create-rsbuild@latest my-app -t lit-js
79
+
80
+ # Basic (TypeScript)
66
81
  npx -y create-rsbuild@latest my-app -t lit-ts
67
82
  ```
68
83
 
69
84
  - **Preact**
70
85
 
71
86
  ```bash
87
+ # Basic (JavaScript)
72
88
  npx -y create-rsbuild@latest my-app -t preact-js
89
+
90
+ # Basic (TypeScript)
73
91
  npx -y create-rsbuild@latest my-app -t preact-ts
74
92
  ```
75
93
 
76
94
  - **Svelte**
77
95
 
78
96
  ```bash
97
+ # Basic (JavaScript)
79
98
  npx -y create-rsbuild@latest my-app -t svelte-js
99
+
100
+ # Basic (TypeScript)
80
101
  npx -y create-rsbuild@latest my-app -t svelte-ts
81
102
  ```
82
103
 
83
104
  - **Solid 1**
84
105
 
85
106
  ```bash
107
+ # Basic (JavaScript)
86
108
  npx -y create-rsbuild@latest my-app -t solid-js
109
+
110
+ # Basic (TypeScript)
87
111
  npx -y create-rsbuild@latest my-app -t solid-ts
112
+
113
+ # TanStack Start (with Rsbuild)
114
+ npx -y create-rsbuild@latest my-app -t tanstack-start-solid
88
115
  ```
89
116
 
90
117
  - **Solid 2**
91
118
 
92
119
  ```bash
120
+ # Basic (JavaScript)
93
121
  npx -y create-rsbuild@latest my-app -t solid2-js
122
+
123
+ # Basic (TypeScript)
94
124
  npx -y create-rsbuild@latest my-app -t solid2-ts
95
125
  ```
96
126
 
97
127
  - **Octane**
98
128
 
99
129
  ```bash
130
+ # Basic (JavaScript)
100
131
  npx -y create-rsbuild@latest my-app -t octane-js
132
+
133
+ # Basic (TypeScript)
101
134
  npx -y create-rsbuild@latest my-app -t octane-ts
102
135
  ```
103
136
 
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import node_fs from "node:fs";
2
2
  import node_path from "node:path";
3
- import { checkCancel, copyFolder, create, select as create_toolkit_select } from "@rstackjs/create-toolkit";
3
+ import { checkCancel, copyFolder, create, select as create_toolkit_select, xSync } from "@rstackjs/create-toolkit";
4
4
  const tailwindcssPlugin = {
5
5
  id: 'tailwindcss',
6
6
  importName: 'pluginTailwindcss',
@@ -108,8 +108,11 @@ const frameworkAlias = {
108
108
  vue3: 'vue',
109
109
  'solid-js': 'solid'
110
110
  };
111
- async function getTemplateName({ template }) {
111
+ let isNonInteractive = false;
112
+ async function getTemplateName({ dir, template }) {
113
+ isNonInteractive = 'string' == typeof dir && 'string' == typeof template;
112
114
  if ('string' == typeof template) {
115
+ if ('tanstack-start-react' === template || 'tanstack-start-solid' === template) return template;
113
116
  const pair = template.split('-');
114
117
  const language = pair[1] ?? 'js';
115
118
  const framework = pair[0];
@@ -156,20 +159,53 @@ async function getTemplateName({ template }) {
156
159
  }
157
160
  ]
158
161
  }));
159
- const language = checkCancel(await create_toolkit_select({
160
- message: 'Select language',
162
+ const variant = checkCancel(await create_toolkit_select({
163
+ message: 'Select template',
161
164
  options: [
162
165
  {
163
166
  value: 'ts',
164
- label: 'TypeScript'
167
+ label: 'Basic (TypeScript)'
165
168
  },
166
169
  {
167
170
  value: 'js',
168
- label: 'JavaScript'
169
- }
171
+ label: 'Basic (JavaScript)'
172
+ },
173
+ ...'react' === framework || 'solid' === framework ? [
174
+ {
175
+ value: 'tanstack-start',
176
+ label: 'TanStack Start'
177
+ }
178
+ ] : []
170
179
  ]
171
180
  }));
172
- return `${framework}-${language}`;
181
+ if ('tanstack-start' === variant) return `tanstack-start-${framework}`;
182
+ return `${framework}-${variant}`;
183
+ }
184
+ function createTanStackProject(framework, { distFolder, packageName, gitEnabled, override }) {
185
+ const args = [
186
+ '@tanstack/cli@latest',
187
+ 'create',
188
+ '--framework',
189
+ framework,
190
+ '--build-tool',
191
+ 'rsbuild',
192
+ '--target-dir',
193
+ distFolder,
194
+ packageName
195
+ ];
196
+ if (isNonInteractive) {
197
+ args.unshift('--yes');
198
+ args.push('--yes');
199
+ }
200
+ if (!gitEnabled) args.push('--no-git');
201
+ if (override) args.push('--force');
202
+ const result = xSync('npx', args, {
203
+ nodePath: false,
204
+ nodeOptions: {
205
+ stdio: 'inherit'
206
+ }
207
+ });
208
+ process.exitCode = result.exitCode ?? 1;
173
209
  }
174
210
  function mapESLintTemplate(templateName) {
175
211
  switch(templateName){
@@ -222,6 +258,10 @@ await create({
222
258
  'vanilla-ts',
223
259
  'react-js',
224
260
  'react-ts',
261
+ {
262
+ name: 'tanstack-start-react',
263
+ create: (context)=>createTanStackProject('React', context)
264
+ },
225
265
  'vue-js',
226
266
  'vue-ts',
227
267
  'lit-js',
@@ -232,6 +272,10 @@ await create({
232
272
  'svelte-ts',
233
273
  'solid-js',
234
274
  'solid-ts',
275
+ {
276
+ name: 'tanstack-start-solid',
277
+ create: (context)=>createTanStackProject('Solid', context)
278
+ },
235
279
  'solid2-js',
236
280
  'solid2-ts',
237
281
  'octane-js',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-rsbuild",
3
- "version": "2.2.13",
3
+ "version": "2.2.14",
4
4
  "description": "Create a new Rsbuild project",
5
5
  "homepage": "https://rsbuild.rs",
6
6
  "bugs": {
@@ -25,10 +25,10 @@
25
25
  "bin.js"
26
26
  ],
27
27
  "dependencies": {
28
- "@rstackjs/create-toolkit": "2.2.7"
28
+ "@rstackjs/create-toolkit": "2.2.9"
29
29
  },
30
30
  "devDependencies": {
31
- "@rsbuild/core": "2.2.13",
31
+ "@rsbuild/core": "2.2.14",
32
32
  "@rsbuild/plugin-babel": "2.1.0",
33
33
  "@rsbuild/plugin-preact": "2.1.0",
34
34
  "@rsbuild/plugin-react": "2.1.1",
@@ -12,6 +12,6 @@
12
12
  "lit": "^3.3.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@rsbuild/core": "^2.2.13"
15
+ "@rsbuild/core": "^2.2.14"
16
16
  }
17
17
  }
@@ -12,7 +12,7 @@
12
12
  "lit": "^3.3.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@rsbuild/core": "^2.2.13",
15
+ "@rsbuild/core": "^2.2.14",
16
16
  "@types/node": "^24.19.2",
17
17
  "typescript": "^6.0.3"
18
18
  }
@@ -9,10 +9,10 @@
9
9
  "preview": "rsbuild preview"
10
10
  },
11
11
  "dependencies": {
12
- "octane": "^0.13.0"
12
+ "octane": "^0.13.8"
13
13
  },
14
14
  "devDependencies": {
15
- "@octanejs/rsbuild-plugin": "^0.1.64",
16
- "@rsbuild/core": "^2.2.13"
15
+ "@octanejs/rsbuild-plugin": "^0.1.65",
16
+ "@rsbuild/core": "^2.2.14"
17
17
  }
18
18
  }
@@ -10,11 +10,11 @@
10
10
  "typecheck": "tsrx-tsc --noEmit -p tsconfig.json"
11
11
  },
12
12
  "dependencies": {
13
- "octane": "^0.13.0"
13
+ "octane": "^0.13.8"
14
14
  },
15
15
  "devDependencies": {
16
- "@octanejs/rsbuild-plugin": "^0.1.64",
17
- "@rsbuild/core": "^2.2.13",
16
+ "@octanejs/rsbuild-plugin": "^0.1.65",
17
+ "@rsbuild/core": "^2.2.14",
18
18
  "@tsrx/typescript-plugin": "^0.6.3",
19
19
  "@types/node": "^24.19.2",
20
20
  "typescript": "^5.9.3"
@@ -12,7 +12,7 @@
12
12
  "preact": "^11.0.1"
13
13
  },
14
14
  "devDependencies": {
15
- "@rsbuild/core": "^2.2.13",
15
+ "@rsbuild/core": "^2.2.14",
16
16
  "@rsbuild/plugin-preact": "^2.1.0"
17
17
  }
18
18
  }
@@ -12,7 +12,7 @@
12
12
  "preact": "^11.0.1"
13
13
  },
14
14
  "devDependencies": {
15
- "@rsbuild/core": "^2.2.13",
15
+ "@rsbuild/core": "^2.2.14",
16
16
  "@rsbuild/plugin-preact": "^2.1.0",
17
17
  "@types/node": "^24.19.2",
18
18
  "typescript": "^6.0.3"
@@ -9,11 +9,11 @@
9
9
  "preview": "rsbuild preview"
10
10
  },
11
11
  "dependencies": {
12
- "react": "^19.3.0",
13
- "react-dom": "^19.3.0"
12
+ "react": "^19.3.1",
13
+ "react-dom": "^19.3.1"
14
14
  },
15
15
  "devDependencies": {
16
- "@rsbuild/core": "^2.2.13",
16
+ "@rsbuild/core": "^2.2.14",
17
17
  "@rsbuild/plugin-react": "^2.1.1"
18
18
  }
19
19
  }
@@ -9,11 +9,11 @@
9
9
  "preview": "rsbuild preview"
10
10
  },
11
11
  "dependencies": {
12
- "react": "^19.3.0",
13
- "react-dom": "^19.3.0"
12
+ "react": "^19.3.1",
13
+ "react-dom": "^19.3.1"
14
14
  },
15
15
  "devDependencies": {
16
- "@rsbuild/core": "^2.2.13",
16
+ "@rsbuild/core": "^2.2.14",
17
17
  "@rsbuild/plugin-react": "^2.1.1",
18
18
  "@types/node": "^24.19.2",
19
19
  "@types/react": "^19.3.0",
@@ -12,7 +12,7 @@
12
12
  "solid-js": "^1.9.17"
13
13
  },
14
14
  "devDependencies": {
15
- "@rsbuild/core": "^2.2.13",
15
+ "@rsbuild/core": "^2.2.14",
16
16
  "@rsbuild/plugin-babel": "^2.1.0",
17
17
  "@rsbuild/plugin-solid": "^1.2.2"
18
18
  }
@@ -12,7 +12,7 @@
12
12
  "solid-js": "^1.9.17"
13
13
  },
14
14
  "devDependencies": {
15
- "@rsbuild/core": "^2.2.13",
15
+ "@rsbuild/core": "^2.2.14",
16
16
  "@rsbuild/plugin-babel": "^2.1.0",
17
17
  "@rsbuild/plugin-solid": "^1.2.2",
18
18
  "@types/node": "^24.19.2",
@@ -9,11 +9,11 @@
9
9
  "preview": "rsbuild preview"
10
10
  },
11
11
  "dependencies": {
12
- "@solidjs/web": "^2.0.0-rc.14",
13
- "solid-js": "^2.0.0-rc.14"
12
+ "@solidjs/web": "^2.0.0-rc.15",
13
+ "solid-js": "^2.0.0-rc.15"
14
14
  },
15
15
  "devDependencies": {
16
- "@rsbuild/core": "^2.2.13",
16
+ "@rsbuild/core": "^2.2.14",
17
17
  "@rsbuild/plugin-solid": "^2.0.0-rc.1"
18
18
  }
19
19
  }
@@ -9,11 +9,11 @@
9
9
  "preview": "rsbuild preview"
10
10
  },
11
11
  "dependencies": {
12
- "@solidjs/web": "^2.0.0-rc.14",
13
- "solid-js": "^2.0.0-rc.14"
12
+ "@solidjs/web": "^2.0.0-rc.15",
13
+ "solid-js": "^2.0.0-rc.15"
14
14
  },
15
15
  "devDependencies": {
16
- "@rsbuild/core": "^2.2.13",
16
+ "@rsbuild/core": "^2.2.14",
17
17
  "@rsbuild/plugin-solid": "^2.0.0-rc.1",
18
18
  "@types/node": "^24.19.2",
19
19
  "typescript": "^6.0.3"
@@ -12,7 +12,7 @@
12
12
  "svelte": "^5.57.2"
13
13
  },
14
14
  "devDependencies": {
15
- "@rsbuild/core": "^2.2.13",
15
+ "@rsbuild/core": "^2.2.14",
16
16
  "@rsbuild/plugin-svelte": "^2.0.1"
17
17
  }
18
18
  }
@@ -13,10 +13,10 @@
13
13
  "svelte": "^5.57.2"
14
14
  },
15
15
  "devDependencies": {
16
- "@rsbuild/core": "^2.2.13",
16
+ "@rsbuild/core": "^2.2.14",
17
17
  "@rsbuild/plugin-svelte": "^2.0.1",
18
18
  "@types/node": "^24.19.2",
19
- "svelte-check": "^4.7.6",
19
+ "svelte-check": "^4.7.7",
20
20
  "typescript": "^6.0.3"
21
21
  }
22
22
  }
@@ -9,6 +9,6 @@
9
9
  "preview": "rsbuild preview"
10
10
  },
11
11
  "devDependencies": {
12
- "@rsbuild/core": "^2.2.13"
12
+ "@rsbuild/core": "^2.2.14"
13
13
  }
14
14
  }
@@ -9,7 +9,7 @@
9
9
  "preview": "rsbuild preview"
10
10
  },
11
11
  "devDependencies": {
12
- "@rsbuild/core": "^2.2.13",
12
+ "@rsbuild/core": "^2.2.14",
13
13
  "@types/node": "^24.19.2",
14
14
  "typescript": "^6.0.3"
15
15
  }
@@ -9,10 +9,10 @@
9
9
  "preview": "rsbuild preview"
10
10
  },
11
11
  "dependencies": {
12
- "vue": "^3.5.43"
12
+ "vue": "^3.5.44"
13
13
  },
14
14
  "devDependencies": {
15
- "@rsbuild/core": "^2.2.13",
15
+ "@rsbuild/core": "^2.2.14",
16
16
  "@rsbuild/plugin-vue": "^2.0.1"
17
17
  }
18
18
  }
@@ -9,10 +9,10 @@
9
9
  "preview": "rsbuild preview"
10
10
  },
11
11
  "dependencies": {
12
- "vue": "^3.5.43"
12
+ "vue": "^3.5.44"
13
13
  },
14
14
  "devDependencies": {
15
- "@rsbuild/core": "^2.2.13",
15
+ "@rsbuild/core": "^2.2.14",
16
16
  "@rsbuild/plugin-vue": "^2.0.1",
17
17
  "@types/node": "^24.19.2",
18
18
  "typescript": "^6.0.3",