create-rspack 2.0.0-rc.1 → 2.0.0-rc.3

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.
Files changed (27) hide show
  1. package/dist/index.js +19 -0
  2. package/package.json +3 -3
  3. package/template-common/AGENTS.md +1 -1
  4. package/template-react-js/package.json +6 -5
  5. package/template-react-js/{rspack.config.mjs → rspack.config.js} +4 -11
  6. package/template-react-ts/package.json +6 -5
  7. package/template-react-ts/rspack.config.ts +3 -6
  8. package/template-rstest/react-js/package.json +2 -2
  9. package/template-rstest/{vanilla-js/rstest.config.mjs → react-js/rstest.config.js} +2 -1
  10. package/template-rstest/react-ts/package.json +2 -2
  11. package/template-rstest/{vanilla-ts/rstest.config.mts → react-ts/rstest.config.ts} +2 -1
  12. package/template-rstest/vanilla-js/package.json +2 -1
  13. package/template-rstest/{vue-js/rstest.config.mjs → vanilla-js/rstest.config.js} +2 -3
  14. package/template-rstest/vanilla-ts/package.json +2 -1
  15. package/template-rstest/{vue-ts/rstest.config.mts → vanilla-ts/rstest.config.ts} +2 -3
  16. package/template-rstest/vue-js/package.json +2 -2
  17. package/template-rstest/{react-js/rstest.config.mjs → vue-js/rstest.config.js} +2 -3
  18. package/template-rstest/vue-ts/package.json +2 -2
  19. package/template-rstest/{react-ts/rstest.config.mts → vue-ts/rstest.config.ts} +2 -3
  20. package/template-vanilla-js/package.json +3 -2
  21. package/template-vanilla-js/{rspack.config.mjs → rspack.config.js} +7 -7
  22. package/template-vanilla-ts/package.json +3 -2
  23. package/template-vanilla-ts/rspack.config.ts +7 -22
  24. package/template-vue-js/package.json +2 -1
  25. package/template-vue-js/{rspack.config.mjs → rspack.config.js} +3 -7
  26. package/template-vue-ts/package.json +4 -3
  27. package/template-vue-ts/rspack.config.ts +2 -6
package/dist/index.js CHANGED
@@ -97,5 +97,24 @@ create({
97
97
  addAgentsMdSearchDirs(toolFolder);
98
98
  }
99
99
  }
100
+ ],
101
+ extraSkills: [
102
+ {
103
+ value: 'rspack-best-practices',
104
+ label: 'Rspack best practices',
105
+ source: 'rstackjs/agent-skills'
106
+ },
107
+ {
108
+ value: 'rstest-best-practices',
109
+ label: 'Rstest best practices',
110
+ source: 'rstackjs/agent-skills',
111
+ when: ({ tools })=>tools.includes('rstest')
112
+ },
113
+ {
114
+ value: 'vercel-react-best-practices',
115
+ label: 'React best practices',
116
+ source: 'vercel-labs/agent-skills',
117
+ when: ({ templateName })=>templateName.startsWith('react-')
118
+ }
100
119
  ]
101
120
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-rspack",
3
- "version": "2.0.0-rc.1",
3
+ "version": "2.0.0-rc.3",
4
4
  "homepage": "https://rspack.rs",
5
5
  "bugs": "https://github.com/web-infra-dev/rspack/issues",
6
6
  "repository": {
@@ -20,10 +20,10 @@
20
20
  "bin.js"
21
21
  ],
22
22
  "dependencies": {
23
- "create-rstack": "1.8.1"
23
+ "create-rstack": "2.0.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@rslib/core": "0.20.3",
26
+ "@rslib/core": "0.21.0",
27
27
  "typescript": "^6.0.2"
28
28
  },
29
29
  "publishConfig": {
@@ -10,4 +10,4 @@ You are an expert in JavaScript, Rspack, and web application development. You wr
10
10
 
11
11
  ## Docs
12
12
 
13
- - Rspack: <https://rspack.rs/llms.txt>
13
+ - Rspack: https://rspack.rs/llms.txt
@@ -1,21 +1,22 @@
1
1
  {
2
2
  "name": "rspack-react-starter",
3
- "private": true,
4
3
  "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
5
6
  "scripts": {
6
- "dev": "rspack dev",
7
7
  "build": "rspack build",
8
+ "dev": "rspack dev",
8
9
  "preview": "rspack preview"
9
10
  },
10
11
  "dependencies": {
11
- "react": "^19.2.4",
12
- "react-dom": "^19.2.4"
12
+ "react": "^19.2.5",
13
+ "react-dom": "^19.2.5"
13
14
  },
14
15
  "devDependencies": {
15
16
  "@rspack/cli": "workspace:*",
16
17
  "@rspack/core": "workspace:*",
17
18
  "@rspack/dev-server": "2.0.0-rc.2",
18
- "@rspack/plugin-react-refresh": "^1.6.1",
19
+ "@rspack/plugin-react-refresh": "^2.0.0",
19
20
  "@types/react": "^19.2.14",
20
21
  "@types/react-dom": "^19.2.3",
21
22
  "react-refresh": "^0.18.0"
@@ -1,21 +1,17 @@
1
1
  // @ts-check
2
- import { dirname } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
2
  import { defineConfig } from '@rspack/cli';
5
3
  import { rspack } from '@rspack/core';
6
4
  import { ReactRefreshRspackPlugin } from '@rspack/plugin-react-refresh';
7
5
 
8
- const __dirname = dirname(fileURLToPath(import.meta.url));
9
6
  const isDev = process.env.NODE_ENV === 'development';
10
7
 
11
8
  export default defineConfig({
12
- context: __dirname,
13
9
  entry: {
14
10
  main: './src/main.jsx',
15
11
  },
16
12
  target: ['browserslist:last 2 versions, > 0.2%, not dead, Firefox ESR'],
17
13
  resolve: {
18
- extensions: ['...', '.ts', '.tsx', '.jsx'],
14
+ extensions: ['...', '.jsx'],
19
15
  },
20
16
  module: {
21
17
  rules: [
@@ -28,17 +24,14 @@ export default defineConfig({
28
24
  type: 'css/auto',
29
25
  },
30
26
  {
31
- test: /\.(jsx?|tsx?)$/,
27
+ test: /\.(?:js|jsx|mjs|cjs)$/,
32
28
  use: [
33
29
  {
34
30
  loader: 'builtin:swc-loader',
35
31
  /** @type {import('@rspack/core').SwcLoaderOptions} */
36
32
  options: {
33
+ detectSyntax: 'auto',
37
34
  jsc: {
38
- parser: {
39
- syntax: 'typescript',
40
- tsx: true,
41
- },
42
35
  transform: {
43
36
  react: {
44
37
  runtime: 'automatic',
@@ -57,6 +50,6 @@ export default defineConfig({
57
50
  new rspack.HtmlRspackPlugin({
58
51
  template: './index.html',
59
52
  }),
60
- isDev ? new ReactRefreshRspackPlugin() : null,
53
+ isDev && new ReactRefreshRspackPlugin(),
61
54
  ],
62
55
  });
@@ -1,21 +1,22 @@
1
1
  {
2
2
  "name": "rspack-react-ts-starter",
3
- "private": true,
4
3
  "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
5
6
  "scripts": {
6
- "dev": "rspack dev",
7
7
  "build": "rspack build",
8
+ "dev": "rspack dev",
8
9
  "preview": "rspack preview"
9
10
  },
10
11
  "dependencies": {
11
- "react": "^19.2.4",
12
- "react-dom": "^19.2.4"
12
+ "react": "^19.2.5",
13
+ "react-dom": "^19.2.5"
13
14
  },
14
15
  "devDependencies": {
15
16
  "@rspack/cli": "workspace:*",
16
17
  "@rspack/core": "workspace:*",
17
18
  "@rspack/dev-server": "2.0.0-rc.2",
18
- "@rspack/plugin-react-refresh": "^1.6.1",
19
+ "@rspack/plugin-react-refresh": "^2.0.0",
19
20
  "@types/react": "^19.2.14",
20
21
  "@types/react-dom": "^19.2.3",
21
22
  "react-refresh": "^0.18.0",
@@ -23,16 +23,13 @@ export default defineConfig({
23
23
  type: 'css/auto',
24
24
  },
25
25
  {
26
- test: /\.(jsx?|tsx?)$/,
26
+ test: /\.(?:js|jsx|mjs|cjs|ts|tsx|mts|cts)$/,
27
27
  use: [
28
28
  {
29
29
  loader: 'builtin:swc-loader',
30
30
  options: {
31
+ detectSyntax: 'auto',
31
32
  jsc: {
32
- parser: {
33
- syntax: 'typescript',
34
- tsx: true,
35
- },
36
33
  transform: {
37
34
  react: {
38
35
  runtime: 'automatic',
@@ -51,6 +48,6 @@ export default defineConfig({
51
48
  new rspack.HtmlRspackPlugin({
52
49
  template: './index.html',
53
50
  }),
54
- isDev ? new ReactRefreshRspackPlugin() : null,
51
+ isDev && new ReactRefreshRspackPlugin(),
55
52
  ],
56
53
  });
@@ -4,11 +4,11 @@
4
4
  "test:watch": "rstest --watch"
5
5
  },
6
6
  "devDependencies": {
7
- "@rsbuild/plugin-react": "^1.4.6",
8
7
  "@testing-library/dom": "^10.4.1",
9
8
  "@testing-library/jest-dom": "^6.9.1",
10
9
  "@testing-library/react": "^16.3.2",
11
- "@rstest/core": "^0.9.6",
10
+ "@rstest/adapter-rspack": "^0.2.0",
11
+ "@rstest/core": "^0.9.7",
12
12
  "happy-dom": "^20.8.9"
13
13
  }
14
14
  }
@@ -1,7 +1,8 @@
1
+ import { withRspackConfig } from '@rstest/adapter-rspack';
1
2
  import { defineConfig } from '@rstest/core';
2
3
 
3
4
  // Docs: https://rstest.rs/config/
4
5
  export default defineConfig({
5
- testEnvironment: 'happy-dom',
6
+ extends: withRspackConfig(),
6
7
  setupFiles: ['./tests/rstest.setup.js'],
7
8
  });
@@ -4,11 +4,11 @@
4
4
  "test:watch": "rstest --watch"
5
5
  },
6
6
  "devDependencies": {
7
- "@rsbuild/plugin-react": "^1.4.6",
8
7
  "@testing-library/dom": "^10.4.1",
9
8
  "@testing-library/jest-dom": "^6.9.1",
10
9
  "@testing-library/react": "^16.3.2",
11
- "@rstest/core": "^0.9.6",
10
+ "@rstest/adapter-rspack": "^0.2.0",
11
+ "@rstest/core": "^0.9.7",
12
12
  "happy-dom": "^20.8.9"
13
13
  }
14
14
  }
@@ -1,7 +1,8 @@
1
+ import { withRspackConfig } from '@rstest/adapter-rspack';
1
2
  import { defineConfig } from '@rstest/core';
2
3
 
3
4
  // Docs: https://rstest.rs/config/
4
5
  export default defineConfig({
5
- testEnvironment: 'happy-dom',
6
+ extends: withRspackConfig(),
6
7
  setupFiles: ['./tests/rstest.setup.ts'],
7
8
  });
@@ -6,7 +6,8 @@
6
6
  "devDependencies": {
7
7
  "@testing-library/dom": "^10.4.1",
8
8
  "@testing-library/jest-dom": "^6.9.1",
9
- "@rstest/core": "^0.9.6",
9
+ "@rstest/adapter-rspack": "^0.2.0",
10
+ "@rstest/core": "^0.9.7",
10
11
  "happy-dom": "^20.8.9"
11
12
  }
12
13
  }
@@ -1,9 +1,8 @@
1
- import { pluginVue } from '@rsbuild/plugin-vue';
1
+ import { withRspackConfig } from '@rstest/adapter-rspack';
2
2
  import { defineConfig } from '@rstest/core';
3
3
 
4
4
  // Docs: https://rstest.rs/config/
5
5
  export default defineConfig({
6
- plugins: [pluginVue()],
7
- testEnvironment: 'happy-dom',
6
+ extends: withRspackConfig(),
8
7
  setupFiles: ['./tests/rstest.setup.js'],
9
8
  });
@@ -6,7 +6,8 @@
6
6
  "devDependencies": {
7
7
  "@testing-library/dom": "^10.4.1",
8
8
  "@testing-library/jest-dom": "^6.9.1",
9
- "@rstest/core": "^0.9.6",
9
+ "@rstest/adapter-rspack": "^0.2.0",
10
+ "@rstest/core": "^0.9.7",
10
11
  "happy-dom": "^20.8.9"
11
12
  }
12
13
  }
@@ -1,9 +1,8 @@
1
- import { pluginVue } from '@rsbuild/plugin-vue';
1
+ import { withRspackConfig } from '@rstest/adapter-rspack';
2
2
  import { defineConfig } from '@rstest/core';
3
3
 
4
4
  // Docs: https://rstest.rs/config/
5
5
  export default defineConfig({
6
- plugins: [pluginVue()],
7
- testEnvironment: 'happy-dom',
6
+ extends: withRspackConfig(),
8
7
  setupFiles: ['./tests/rstest.setup.ts'],
9
8
  });
@@ -4,11 +4,11 @@
4
4
  "test:watch": "rstest --watch"
5
5
  },
6
6
  "devDependencies": {
7
- "@rsbuild/plugin-vue": "^1.2.7",
8
7
  "@testing-library/dom": "^10.4.1",
9
8
  "@testing-library/jest-dom": "^6.9.1",
10
9
  "@testing-library/vue": "^8.1.0",
11
- "@rstest/core": "^0.9.6",
10
+ "@rstest/adapter-rspack": "^0.2.0",
11
+ "@rstest/core": "^0.9.7",
12
12
  "happy-dom": "^20.8.9"
13
13
  }
14
14
  }
@@ -1,9 +1,8 @@
1
- import { pluginReact } from '@rsbuild/plugin-react';
1
+ import { withRspackConfig } from '@rstest/adapter-rspack';
2
2
  import { defineConfig } from '@rstest/core';
3
3
 
4
4
  // Docs: https://rstest.rs/config/
5
5
  export default defineConfig({
6
- plugins: [pluginReact()],
7
- testEnvironment: 'happy-dom',
6
+ extends: withRspackConfig(),
8
7
  setupFiles: ['./tests/rstest.setup.js'],
9
8
  });
@@ -4,11 +4,11 @@
4
4
  "test:watch": "rstest --watch"
5
5
  },
6
6
  "devDependencies": {
7
- "@rsbuild/plugin-vue": "^1.2.7",
8
7
  "@testing-library/dom": "^10.4.1",
9
8
  "@testing-library/jest-dom": "^6.9.1",
10
9
  "@testing-library/vue": "^8.1.0",
11
- "@rstest/core": "^0.9.6",
10
+ "@rstest/adapter-rspack": "^0.2.0",
11
+ "@rstest/core": "^0.9.7",
12
12
  "happy-dom": "^20.8.9"
13
13
  }
14
14
  }
@@ -1,9 +1,8 @@
1
- import { pluginReact } from '@rsbuild/plugin-react';
1
+ import { withRspackConfig } from '@rstest/adapter-rspack';
2
2
  import { defineConfig } from '@rstest/core';
3
3
 
4
4
  // Docs: https://rstest.rs/config/
5
5
  export default defineConfig({
6
- plugins: [pluginReact()],
7
- testEnvironment: 'happy-dom',
6
+ extends: withRspackConfig(),
8
7
  setupFiles: ['./tests/rstest.setup.ts'],
9
8
  });
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "rspack-vanilla-starter",
3
- "private": true,
4
3
  "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
5
6
  "scripts": {
6
- "dev": "rspack dev",
7
7
  "build": "rspack build",
8
+ "dev": "rspack dev",
8
9
  "preview": "rspack preview"
9
10
  },
10
11
  "devDependencies": {
@@ -18,22 +18,22 @@ export default defineConfig({
18
18
  type: 'asset',
19
19
  },
20
20
  {
21
- test: /\.js$/,
21
+ test: /\.(?:js|mjs|cjs)$/,
22
22
  use: [
23
23
  {
24
24
  loader: 'builtin:swc-loader',
25
25
  /** @type {import('@rspack/core').SwcLoaderOptions} */
26
26
  options: {
27
- jsc: {
28
- parser: {
29
- syntax: 'ecmascript',
30
- },
31
- },
27
+ detectSyntax: 'auto',
32
28
  },
33
29
  },
34
30
  ],
35
31
  },
36
32
  ],
37
33
  },
38
- plugins: [new rspack.HtmlRspackPlugin({ template: './index.html' })],
34
+ plugins: [
35
+ new rspack.HtmlRspackPlugin({
36
+ template: './index.html',
37
+ }),
38
+ ],
39
39
  });
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "rspack-vanilla-ts-starter",
3
- "private": true,
4
3
  "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
5
6
  "scripts": {
6
- "dev": "rspack dev",
7
7
  "build": "rspack build",
8
+ "dev": "rspack dev",
8
9
  "preview": "rspack preview"
9
10
  },
10
11
  "devDependencies": {
@@ -20,36 +20,21 @@ export default defineConfig({
20
20
  type: 'asset',
21
21
  },
22
22
  {
23
- test: /\.js$/,
23
+ test: /\.(?:js|mjs|cjs|ts|mts|cts)$/,
24
24
  use: [
25
25
  {
26
26
  loader: 'builtin:swc-loader',
27
27
  options: {
28
- jsc: {
29
- parser: {
30
- syntax: 'ecmascript',
31
- },
32
- },
33
- } satisfies SwcLoaderOptions,
34
- },
35
- ],
36
- },
37
- {
38
- test: /\.ts$/,
39
- use: [
40
- {
41
- loader: 'builtin:swc-loader',
42
- options: {
43
- jsc: {
44
- parser: {
45
- syntax: 'typescript',
46
- },
47
- },
28
+ detectSyntax: 'auto',
48
29
  } satisfies SwcLoaderOptions,
49
30
  },
50
31
  ],
51
32
  },
52
33
  ],
53
34
  },
54
- plugins: [new rspack.HtmlRspackPlugin({ template: './index.html' })],
35
+ plugins: [
36
+ new rspack.HtmlRspackPlugin({
37
+ template: './index.html',
38
+ }),
39
+ ],
55
40
  });
@@ -2,9 +2,10 @@
2
2
  "name": "rspack-vue-starter",
3
3
  "version": "1.0.0",
4
4
  "private": true,
5
+ "type": "module",
5
6
  "scripts": {
6
- "dev": "rspack dev",
7
7
  "build": "rspack build",
8
+ "dev": "rspack dev",
8
9
  "preview": "rspack preview"
9
10
  },
10
11
  "dependencies": {
@@ -9,7 +9,7 @@ export default defineConfig({
9
9
  },
10
10
  target: ['browserslist:last 2 versions, > 0.2%, not dead, Firefox ESR'],
11
11
  resolve: {
12
- extensions: ['...', '.ts', '.vue'],
12
+ extensions: ['...', '.vue'],
13
13
  },
14
14
  module: {
15
15
  rules: [
@@ -25,17 +25,13 @@ export default defineConfig({
25
25
  },
26
26
  },
27
27
  {
28
- test: /\.(js|ts)$/,
28
+ test: /\.(?:js|mjs|cjs)$/,
29
29
  use: [
30
30
  {
31
31
  loader: 'builtin:swc-loader',
32
32
  /** @type {import('@rspack/core').SwcLoaderOptions} */
33
33
  options: {
34
- jsc: {
35
- parser: {
36
- syntax: 'typescript',
37
- },
38
- },
34
+ detectSyntax: 'auto',
39
35
  },
40
36
  },
41
37
  ],
@@ -2,9 +2,10 @@
2
2
  "name": "rspack-vue-ts-starter",
3
3
  "version": "1.0.0",
4
4
  "private": true,
5
+ "type": "module",
5
6
  "scripts": {
6
- "dev": "rspack dev",
7
7
  "build": "rspack build",
8
+ "dev": "rspack dev",
8
9
  "preview": "rspack preview"
9
10
  },
10
11
  "dependencies": {
@@ -14,7 +15,7 @@
14
15
  "@rspack/cli": "workspace:*",
15
16
  "@rspack/core": "workspace:*",
16
17
  "@rspack/dev-server": "2.0.0-rc.2",
17
- "typescript": "^6.0.2",
18
- "rspack-vue-loader": "^17.5.0"
18
+ "rspack-vue-loader": "^17.5.0",
19
+ "typescript": "^6.0.2"
19
20
  }
20
21
  }
@@ -28,16 +28,12 @@ export default defineConfig({
28
28
  },
29
29
  },
30
30
  {
31
- test: /\.(js|ts)$/,
31
+ test: /\.(?:js|mjs|cjs|ts|mts|cts)$/,
32
32
  use: [
33
33
  {
34
34
  loader: 'builtin:swc-loader',
35
35
  options: {
36
- jsc: {
37
- parser: {
38
- syntax: 'typescript',
39
- },
40
- },
36
+ detectSyntax: 'auto',
41
37
  } satisfies SwcLoaderOptions,
42
38
  },
43
39
  ],