From e35263bca0c088a5974d3a72deac720b170aad5a Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 8 Aug 2026 08:31:49 +0800 Subject: [PATCH] feat(create-rstack): add default template tooling --- .../template-app-react-js/package.json | 7 +++++-- .../template-app-react-js/rstack.config.js | 14 ++++++++++++++ .../template-app-react-ts/package.json | 7 +++++-- .../template-app-react-ts/rstack.config.ts | 15 +++++++++++++++ .../template-app-vanilla-js/package.json | 7 +++++-- .../template-app-vanilla-js/rstack.config.js | 14 +++++++++++++- .../template-app-vanilla-ts/package.json | 7 +++++-- .../template-app-vanilla-ts/rstack.config.ts | 14 +++++++++++++- .../create-rstack/template-lib-js/package.json | 2 ++ .../template-lib-js/rstack.config.js | 10 ++++++++++ .../create-rstack/template-lib-ts/package.json | 2 ++ .../template-lib-ts/rstack.config.ts | 10 ++++++++++ .../create-rstack/template-lib-ts/tsconfig.json | 1 + 13 files changed, 100 insertions(+), 10 deletions(-) diff --git a/packages/create-rstack/template-app-react-js/package.json b/packages/create-rstack/template-app-react-js/package.json index 399515d..09dde49 100644 --- a/packages/create-rstack/template-app-react-js/package.json +++ b/packages/create-rstack/template-app-react-js/package.json @@ -5,8 +5,11 @@ "type": "module", "scripts": { "build": "rs build", - "dev": "rs dev --open", - "preview": "rs preview" + "dev": "rs dev", + "format": "rs fmt", + "lint": "rs lint", + "preview": "rs preview", + "test": "rs test" }, "dependencies": { "react": "^19.2.8", diff --git a/packages/create-rstack/template-app-react-js/rstack.config.js b/packages/create-rstack/template-app-react-js/rstack.config.js index 370a7f9..a89f299 100644 --- a/packages/create-rstack/template-app-react-js/rstack.config.js +++ b/packages/create-rstack/template-app-react-js/rstack.config.js @@ -9,3 +9,17 @@ define.app(async () => { plugins: [pluginReact()], }; }); + +define.test({ + // Configure Rstest +}); + +define.lint(async () => { + const { js, reactHooksPlugin, reactPlugin } = await import('rstack/lint'); + + return [ + js.configs.recommended, + reactPlugin.configs.recommended, + reactHooksPlugin.configs.recommended, + ]; +}); diff --git a/packages/create-rstack/template-app-react-ts/package.json b/packages/create-rstack/template-app-react-ts/package.json index 6e130b0..a8b73f0 100644 --- a/packages/create-rstack/template-app-react-ts/package.json +++ b/packages/create-rstack/template-app-react-ts/package.json @@ -5,8 +5,11 @@ "type": "module", "scripts": { "build": "rs build", - "dev": "rs dev --open", - "preview": "rs preview" + "dev": "rs dev", + "format": "rs fmt", + "lint": "rs lint", + "preview": "rs preview", + "test": "rs test" }, "dependencies": { "react": "^19.2.8", diff --git a/packages/create-rstack/template-app-react-ts/rstack.config.ts b/packages/create-rstack/template-app-react-ts/rstack.config.ts index 698eb19..29ab420 100644 --- a/packages/create-rstack/template-app-react-ts/rstack.config.ts +++ b/packages/create-rstack/template-app-react-ts/rstack.config.ts @@ -8,3 +8,18 @@ define.app(async () => { plugins: [pluginReact()], }; }); + +define.test({ + // Configure Rstest +}); + +define.lint(async () => { + const { js, ts, reactPlugin, reactHooksPlugin } = await import('rstack/lint'); + + return [ + js.configs.recommended, + ts.configs.recommended, + reactPlugin.configs.recommended, + reactHooksPlugin.configs.recommended, + ]; +}); diff --git a/packages/create-rstack/template-app-vanilla-js/package.json b/packages/create-rstack/template-app-vanilla-js/package.json index 6ca855d..7dd220e 100644 --- a/packages/create-rstack/template-app-vanilla-js/package.json +++ b/packages/create-rstack/template-app-vanilla-js/package.json @@ -5,8 +5,11 @@ "type": "module", "scripts": { "build": "rs build", - "dev": "rs dev --open", - "preview": "rs preview" + "dev": "rs dev", + "format": "rs fmt", + "lint": "rs lint", + "preview": "rs preview", + "test": "rs test" }, "devDependencies": { "rstack": "^0.3.5" diff --git a/packages/create-rstack/template-app-vanilla-js/rstack.config.js b/packages/create-rstack/template-app-vanilla-js/rstack.config.js index 82c1574..fd6c52e 100644 --- a/packages/create-rstack/template-app-vanilla-js/rstack.config.js +++ b/packages/create-rstack/template-app-vanilla-js/rstack.config.js @@ -2,4 +2,16 @@ // Rstack configuration guide: https://rstack.rs/config import { define } from 'rstack'; -define.app({}); +define.app({ + // Configure Rsbuild +}); + +define.test({ + // Configure Rstest +}); + +define.lint(async () => { + const { js } = await import('rstack/lint'); + + return [js.configs.recommended]; +}); diff --git a/packages/create-rstack/template-app-vanilla-ts/package.json b/packages/create-rstack/template-app-vanilla-ts/package.json index 2b1fc11..65121cb 100644 --- a/packages/create-rstack/template-app-vanilla-ts/package.json +++ b/packages/create-rstack/template-app-vanilla-ts/package.json @@ -5,8 +5,11 @@ "type": "module", "scripts": { "build": "rs build", - "dev": "rs dev --open", - "preview": "rs preview" + "dev": "rs dev", + "format": "rs fmt", + "lint": "rs lint", + "preview": "rs preview", + "test": "rs test" }, "devDependencies": { "@types/node": "^24.13.3", diff --git a/packages/create-rstack/template-app-vanilla-ts/rstack.config.ts b/packages/create-rstack/template-app-vanilla-ts/rstack.config.ts index 6dd7964..3563b86 100644 --- a/packages/create-rstack/template-app-vanilla-ts/rstack.config.ts +++ b/packages/create-rstack/template-app-vanilla-ts/rstack.config.ts @@ -1,4 +1,16 @@ // Rstack configuration guide: https://rstack.rs/config import { define } from 'rstack'; -define.app({}); +define.app({ + // Configure Rsbuild +}); + +define.test({ + // Configure Rstest +}); + +define.lint(async () => { + const { js, ts } = await import('rstack/lint'); + + return [js.configs.recommended, ts.configs.recommended]; +}); diff --git a/packages/create-rstack/template-lib-js/package.json b/packages/create-rstack/template-lib-js/package.json index a100881..76a93f3 100644 --- a/packages/create-rstack/template-lib-js/package.json +++ b/packages/create-rstack/template-lib-js/package.json @@ -15,6 +15,8 @@ "scripts": { "build": "rs lib", "dev": "rs lib --watch", + "format": "rs fmt", + "lint": "rs lint", "test": "rs test", "test:watch": "rs test --watch" }, diff --git a/packages/create-rstack/template-lib-js/rstack.config.js b/packages/create-rstack/template-lib-js/rstack.config.js index 437a6bd..4d3e4b0 100644 --- a/packages/create-rstack/template-lib-js/rstack.config.js +++ b/packages/create-rstack/template-lib-js/rstack.config.js @@ -5,3 +5,13 @@ import { define } from 'rstack'; define.lib({ syntax: ['node 22'], }); + +define.test({ + // Configure Rstest +}); + +define.lint(async () => { + const { js } = await import('rstack/lint'); + + return [js.configs.recommended]; +}); diff --git a/packages/create-rstack/template-lib-ts/package.json b/packages/create-rstack/template-lib-ts/package.json index 7e2c33e..46091aa 100644 --- a/packages/create-rstack/template-lib-ts/package.json +++ b/packages/create-rstack/template-lib-ts/package.json @@ -17,6 +17,8 @@ "scripts": { "build": "rs lib", "dev": "rs lib --watch", + "format": "rs fmt", + "lint": "rs lint", "test": "rs test", "test:watch": "rs test --watch" }, diff --git a/packages/create-rstack/template-lib-ts/rstack.config.ts b/packages/create-rstack/template-lib-ts/rstack.config.ts index 2cab128..bee703a 100644 --- a/packages/create-rstack/template-lib-ts/rstack.config.ts +++ b/packages/create-rstack/template-lib-ts/rstack.config.ts @@ -5,3 +5,13 @@ define.lib({ syntax: ['node 22'], dts: true, }); + +define.test({ + // Configure Rstest +}); + +define.lint(async () => { + const { js, ts } = await import('rstack/lint'); + + return [js.configs.recommended, ts.configs.recommended]; +}); diff --git a/packages/create-rstack/template-lib-ts/tsconfig.json b/packages/create-rstack/template-lib-ts/tsconfig.json index b21bfaf..1ca785b 100644 --- a/packages/create-rstack/template-lib-ts/tsconfig.json +++ b/packages/create-rstack/template-lib-ts/tsconfig.json @@ -6,6 +6,7 @@ "skipLibCheck": true, "types": ["rstack/types", "node"], "useDefineForClassFields": true, + "rootDir": "src", /* modules */ "moduleDetection": "force",