From e6bf33ed009f0b792317dc03fbae5692c05dde66 Mon Sep 17 00:00:00 2001 From: Elecmonkey Date: Wed, 19 Aug 2026 11:28:33 +0800 Subject: [PATCH 1/4] refactor(create-rslib): layer template tsconfigs by scope --- packages/create-rslib/src/index.ts | 2 +- .../template-node-ts/package.json | 2 +- .../template-node-ts/tests/tsconfig.json | 8 +++++++ .../template-node-ts/tsconfig.json | 16 +++++++++---- .../template-react-ts/package.json | 1 + .../template-react-ts/tests/tsconfig.json | 5 ++-- .../template-react-ts/tsconfig.json | 18 +++++++++++---- .../react-ts/docs/tsconfig.json | 10 ++++++++ .../template-rspress/react-ts/tsconfig.json | 16 ------------- .../template-solid-ts/package.json | 1 + .../template-solid-ts/tests/tsconfig.json | 5 ++-- .../template-solid-ts/tsconfig.json | 18 +++++++++++---- .../template-svelte-ts/package.json | 2 +- .../template-svelte-ts/tests/tsconfig.json | 9 ++++++++ .../template-svelte-ts/tsconfig.json | 23 +++++++++++++------ .../create-rslib/template-vue-ts/package.json | 1 + .../template-vue-ts/tests/tsconfig.json | 6 +++-- .../template-vue-ts/tsconfig.json | 18 ++++++++------- packages/create-rslib/test/index.test.ts | 4 ++-- 19 files changed, 111 insertions(+), 54 deletions(-) create mode 100644 packages/create-rslib/template-node-ts/tests/tsconfig.json create mode 100644 packages/create-rslib/template-rspress/react-ts/docs/tsconfig.json delete mode 100644 packages/create-rslib/template-rspress/react-ts/tsconfig.json create mode 100644 packages/create-rslib/template-svelte-ts/tests/tsconfig.json diff --git a/packages/create-rslib/src/index.ts b/packages/create-rslib/src/index.ts index 0a36208c22..dd5ce1b2ea 100644 --- a/packages/create-rslib/src/index.ts +++ b/packages/create-rslib/src/index.ts @@ -159,7 +159,7 @@ create({ const packageName = getPackageName(distFolder); replacePackageNamePlaceholder( distFolder, - ['docs/Button.mdx', 'tsconfig.json'], + ['docs/Button.mdx', 'docs/tsconfig.json'], packageName, ); diff --git a/packages/create-rslib/template-node-ts/package.json b/packages/create-rslib/template-node-ts/package.json index 0b9391e2e7..b7ef14ac95 100644 --- a/packages/create-rslib/template-node-ts/package.json +++ b/packages/create-rslib/template-node-ts/package.json @@ -22,7 +22,7 @@ "@rslib/core": "workspace:*", "@rstest/adapter-rslib": "^0.11.8", "@rstest/core": "^0.11.8", - "@types/node": "^24.13.3", + "@types/node": "^26.2.0", "typescript": "^6.0.3" }, "engines": { diff --git a/packages/create-rslib/template-node-ts/tests/tsconfig.json b/packages/create-rslib/template-node-ts/tests/tsconfig.json new file mode 100644 index 0000000000..6b6e131435 --- /dev/null +++ b/packages/create-rslib/template-node-ts/tests/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "rootDir": "..", + "types": ["node"] + }, + "include": ["./"] +} diff --git a/packages/create-rslib/template-node-ts/tsconfig.json b/packages/create-rslib/template-node-ts/tsconfig.json index 89920377d7..3ea980f155 100644 --- a/packages/create-rslib/template-node-ts/tsconfig.json +++ b/packages/create-rslib/template-node-ts/tsconfig.json @@ -1,15 +1,23 @@ { "compilerOptions": { "lib": ["ES2022"], + "target": "ES2022", "noEmit": true, "skipLibCheck": true, + "types": ["node"], + "useDefineForClassFields": true, + "rootDir": "src", + + /* modules */ "isolatedModules": true, - "resolveJsonModule": true, + "moduleDetection": "force", "moduleResolution": "bundler", - "useDefineForClassFields": true, + "resolveJsonModule": true, "allowImportingTsExtensions": true, - "types": ["node"], - "rootDir": "src" + + /* type checking */ + "noUnusedLocals": true, + "noUnusedParameters": true }, "include": ["src"] } diff --git a/packages/create-rslib/template-react-ts/package.json b/packages/create-rslib/template-react-ts/package.json index 78e039ff99..a3215cae91 100644 --- a/packages/create-rslib/template-react-ts/package.json +++ b/packages/create-rslib/template-react-ts/package.json @@ -26,6 +26,7 @@ "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "^16.3.2", + "@types/node": "^26.2.0", "@types/react": "^19.2.18", "@types/react-dom": "^19.2.4", "happy-dom": "^20.11.2", diff --git a/packages/create-rslib/template-react-ts/tests/tsconfig.json b/packages/create-rslib/template-react-ts/tests/tsconfig.json index c6ff4244d3..201694f409 100644 --- a/packages/create-rslib/template-react-ts/tests/tsconfig.json +++ b/packages/create-rslib/template-react-ts/tests/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "types": ["@rslib/core/types", "@testing-library/jest-dom"] + "rootDir": "..", + "types": ["@rslib/core/types", "node", "@testing-library/jest-dom"] }, - "include": [".", "../rstest.setup.ts"] + "include": ["./"] } diff --git a/packages/create-rslib/template-react-ts/tsconfig.json b/packages/create-rslib/template-react-ts/tsconfig.json index 45a2bd99ef..076b68bc33 100644 --- a/packages/create-rslib/template-react-ts/tsconfig.json +++ b/packages/create-rslib/template-react-ts/tsconfig.json @@ -2,13 +2,23 @@ "compilerOptions": { "lib": ["DOM", "ES2022"], "jsx": "react-jsx", + "target": "ES2022", + "noEmit": true, "skipLibCheck": true, + "types": ["@rslib/core/types"], + "useDefineForClassFields": true, + "rootDir": "src", + + /* modules */ "isolatedModules": true, - "resolveJsonModule": true, + "moduleDetection": "force", "moduleResolution": "bundler", - "useDefineForClassFields": true, - "types": ["@rslib/core/types"], - "rootDir": "src" + "resolveJsonModule": true, + "allowImportingTsExtensions": true, + + /* type checking */ + "noUnusedLocals": true, + "noUnusedParameters": true }, "include": ["src"] } diff --git a/packages/create-rslib/template-rspress/react-ts/docs/tsconfig.json b/packages/create-rslib/template-rspress/react-ts/docs/tsconfig.json new file mode 100644 index 0000000000..ab23b71861 --- /dev/null +++ b/packages/create-rslib/template-rspress/react-ts/docs/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "rootDir": "..", + "paths": { + "{{ packageName }}": [".."] + } + }, + "include": ["./"] +} diff --git a/packages/create-rslib/template-rspress/react-ts/tsconfig.json b/packages/create-rslib/template-rspress/react-ts/tsconfig.json deleted file mode 100644 index 39df36cb00..0000000000 --- a/packages/create-rslib/template-rspress/react-ts/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "compilerOptions": { - "lib": ["DOM", "ES2022"], - "jsx": "react-jsx", - "skipLibCheck": true, - "isolatedModules": true, - "resolveJsonModule": true, - "moduleResolution": "bundler", - "useDefineForClassFields": true, - "types": ["@rslib/core/types", "node"], - "paths": { - "{{ packageName }}": ["."] - } - }, - "include": ["src", "docs", "rspress.config.ts"] -} diff --git a/packages/create-rslib/template-solid-ts/package.json b/packages/create-rslib/template-solid-ts/package.json index 85959af658..9ae0e7ebfb 100644 --- a/packages/create-rslib/template-solid-ts/package.json +++ b/packages/create-rslib/template-solid-ts/package.json @@ -28,6 +28,7 @@ "@solidjs/testing-library": "^0.8.10", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^7.0.1", + "@types/node": "^26.2.0", "happy-dom": "^20.11.2", "solid-js": "^1.9.14", "typescript": "^6.0.3" diff --git a/packages/create-rslib/template-solid-ts/tests/tsconfig.json b/packages/create-rslib/template-solid-ts/tests/tsconfig.json index c6ff4244d3..201694f409 100644 --- a/packages/create-rslib/template-solid-ts/tests/tsconfig.json +++ b/packages/create-rslib/template-solid-ts/tests/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "types": ["@rslib/core/types", "@testing-library/jest-dom"] + "rootDir": "..", + "types": ["@rslib/core/types", "node", "@testing-library/jest-dom"] }, - "include": [".", "../rstest.setup.ts"] + "include": ["./"] } diff --git a/packages/create-rslib/template-solid-ts/tsconfig.json b/packages/create-rslib/template-solid-ts/tsconfig.json index 181300644b..405a5830ed 100644 --- a/packages/create-rslib/template-solid-ts/tsconfig.json +++ b/packages/create-rslib/template-solid-ts/tsconfig.json @@ -3,13 +3,23 @@ "lib": ["DOM", "ES2022"], "jsx": "preserve", "jsxImportSource": "solid-js", + "target": "ES2022", + "noEmit": true, "skipLibCheck": true, + "types": ["@rslib/core/types"], + "useDefineForClassFields": true, + "rootDir": "src", + + /* modules */ "isolatedModules": true, - "resolveJsonModule": true, + "moduleDetection": "force", "moduleResolution": "bundler", - "useDefineForClassFields": true, - "types": ["@rslib/core/types"], - "rootDir": "src" + "resolveJsonModule": true, + "allowImportingTsExtensions": true, + + /* type checking */ + "noUnusedLocals": true, + "noUnusedParameters": true }, "include": ["src"] } diff --git a/packages/create-rslib/template-svelte-ts/package.json b/packages/create-rslib/template-svelte-ts/package.json index 7002945a61..63fdf4cb37 100644 --- a/packages/create-rslib/template-svelte-ts/package.json +++ b/packages/create-rslib/template-svelte-ts/package.json @@ -26,7 +26,7 @@ "@rstest/adapter-rslib": "^0.11.8", "@rstest/core": "^0.11.8", "@tsconfig/svelte": "^5.0.8", - "@types/node": "^24.13.3", + "@types/node": "^26.2.0", "happy-dom": "^20.11.2", "svelte": "^5.56.9", "svelte-check": "^4.7.6", diff --git a/packages/create-rslib/template-svelte-ts/tests/tsconfig.json b/packages/create-rslib/template-svelte-ts/tests/tsconfig.json new file mode 100644 index 0000000000..d2f2a6cbf7 --- /dev/null +++ b/packages/create-rslib/template-svelte-ts/tests/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "noEmit": true, + "rootDir": "..", + "types": ["@rslib/core/types", "node", "svelte"] + }, + "include": ["./"] +} diff --git a/packages/create-rslib/template-svelte-ts/tsconfig.json b/packages/create-rslib/template-svelte-ts/tsconfig.json index f94e1e7af5..cc61005bc1 100644 --- a/packages/create-rslib/template-svelte-ts/tsconfig.json +++ b/packages/create-rslib/template-svelte-ts/tsconfig.json @@ -1,17 +1,26 @@ { "extends": "@tsconfig/svelte/tsconfig.json", "compilerOptions": { - "target": "ES2022", "lib": ["DOM", "ES2022"], + "target": "ES2022", + "declaration": true, + "emitDeclarationOnly": true, + "skipLibCheck": true, + "types": ["@rslib/core/types", "svelte"], + "useDefineForClassFields": true, + "rootDir": "src", + + /* modules */ "module": "preserve", + "isolatedModules": true, "moduleDetection": "force", "moduleResolution": "bundler", "resolveJsonModule": true, - "types": ["node"], - "declaration": true, - "emitDeclarationOnly": true, - "isolatedModules": true, - "noUnusedLocals": true + "allowImportingTsExtensions": true, + + /* type checking */ + "noUnusedLocals": true, + "noUnusedParameters": true }, - "include": ["src", "scripts", "*.config.ts"] + "include": ["src"] } diff --git a/packages/create-rslib/template-vue-ts/package.json b/packages/create-rslib/template-vue-ts/package.json index 1aaf72b1b1..90df680466 100644 --- a/packages/create-rslib/template-vue-ts/package.json +++ b/packages/create-rslib/template-vue-ts/package.json @@ -24,6 +24,7 @@ "@rstest/adapter-rslib": "^0.11.8", "@rstest/core": "^0.11.8", "@testing-library/jest-dom": "^7.0.1", + "@types/node": "^26.2.0", "@vue/test-utils": "^2.4.11", "happy-dom": "^20.11.2", "typescript": "^6.0.3", diff --git a/packages/create-rslib/template-vue-ts/tests/tsconfig.json b/packages/create-rslib/template-vue-ts/tests/tsconfig.json index c6ff4244d3..840b07cb01 100644 --- a/packages/create-rslib/template-vue-ts/tests/tsconfig.json +++ b/packages/create-rslib/template-vue-ts/tests/tsconfig.json @@ -1,7 +1,9 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "types": ["@rslib/core/types", "@testing-library/jest-dom"] + "noEmit": true, + "rootDir": "..", + "types": ["@rslib/core/types", "node", "@testing-library/jest-dom"] }, - "include": [".", "../rstest.setup.ts"] + "include": ["./"] } diff --git a/packages/create-rslib/template-vue-ts/tsconfig.json b/packages/create-rslib/template-vue-ts/tsconfig.json index 6eea802408..ae5c1864b4 100644 --- a/packages/create-rslib/template-vue-ts/tsconfig.json +++ b/packages/create-rslib/template-vue-ts/tsconfig.json @@ -2,24 +2,26 @@ "compilerOptions": { "lib": ["DOM", "ES2022"], "jsx": "preserve", - "skipLibCheck": true, "jsxImportSource": "vue", - "useDefineForClassFields": true, + "target": "ES2022", "declaration": true, - "outDir": "dist", "emitDeclarationOnly": true, + "outDir": "dist", + "skipLibCheck": true, + "types": ["@rslib/core/types"], + "useDefineForClassFields": true, + "rootDir": "src", /* modules */ "isolatedModules": true, - "resolveJsonModule": true, + "moduleDetection": "force", "moduleResolution": "bundler", - "types": ["@rslib/core/types"], + "resolveJsonModule": true, + "allowImportingTsExtensions": true, /* type checking */ "noUnusedLocals": true, - "noUnusedParameters": true, - - "rootDir": "src" + "noUnusedParameters": true }, "include": ["src"] } diff --git a/packages/create-rslib/test/index.test.ts b/packages/create-rslib/test/index.test.ts index ce95faf25d..d7374d8d9f 100644 --- a/packages/create-rslib/test/index.test.ts +++ b/packages/create-rslib/test/index.test.ts @@ -350,8 +350,8 @@ describe('rspress template', () => { expect(buttonMdxContent).not.toContain('{{ packageName }}'); expect(buttonMdxContent).toContain(`from '${projectName}'`); - // Verify tsconfig.json has the actual package name in paths - const tsconfigPath = join(dir, 'tsconfig.json'); + // Verify docs/tsconfig.json has the actual package name in paths + const tsconfigPath = join(dir, 'docs/tsconfig.json'); expect(existsSync(tsconfigPath)).toBeTruthy(); const tsconfigContent = readFileSync(tsconfigPath, 'utf-8'); expect(tsconfigContent).not.toContain('{{ packageName }}'); From 06a63f793e5321be14113c07d57c822051857222 Mon Sep 17 00:00:00 2001 From: Elecmonkey Date: Wed, 19 Aug 2026 12:05:25 +0800 Subject: [PATCH 2/4] fix(create-rslib): add missing outDir to svelte-ts template tsconfig --- packages/create-rslib/template-svelte-ts/tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/create-rslib/template-svelte-ts/tsconfig.json b/packages/create-rslib/template-svelte-ts/tsconfig.json index cc61005bc1..e00127887e 100644 --- a/packages/create-rslib/template-svelte-ts/tsconfig.json +++ b/packages/create-rslib/template-svelte-ts/tsconfig.json @@ -5,6 +5,7 @@ "target": "ES2022", "declaration": true, "emitDeclarationOnly": true, + "outDir": "dist", "skipLibCheck": true, "types": ["@rslib/core/types", "svelte"], "useDefineForClassFields": true, From 4ba2cbdf04957dd88666da4913b90edb10f81d6e Mon Sep 17 00:00:00 2001 From: Elecmonkey Date: Wed, 19 Aug 2026 12:39:38 +0800 Subject: [PATCH 3/4] chore(create-rslib): keep @types/node at ^24.13.3 in templates --- packages/create-rslib/template-node-ts/package.json | 2 +- packages/create-rslib/template-react-ts/package.json | 2 +- packages/create-rslib/template-solid-ts/package.json | 2 +- packages/create-rslib/template-svelte-ts/package.json | 2 +- packages/create-rslib/template-vue-ts/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/create-rslib/template-node-ts/package.json b/packages/create-rslib/template-node-ts/package.json index b7ef14ac95..0b9391e2e7 100644 --- a/packages/create-rslib/template-node-ts/package.json +++ b/packages/create-rslib/template-node-ts/package.json @@ -22,7 +22,7 @@ "@rslib/core": "workspace:*", "@rstest/adapter-rslib": "^0.11.8", "@rstest/core": "^0.11.8", - "@types/node": "^26.2.0", + "@types/node": "^24.13.3", "typescript": "^6.0.3" }, "engines": { diff --git a/packages/create-rslib/template-react-ts/package.json b/packages/create-rslib/template-react-ts/package.json index a3215cae91..0061a48ebd 100644 --- a/packages/create-rslib/template-react-ts/package.json +++ b/packages/create-rslib/template-react-ts/package.json @@ -26,7 +26,7 @@ "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "^16.3.2", - "@types/node": "^26.2.0", + "@types/node": "^24.13.3", "@types/react": "^19.2.18", "@types/react-dom": "^19.2.4", "happy-dom": "^20.11.2", diff --git a/packages/create-rslib/template-solid-ts/package.json b/packages/create-rslib/template-solid-ts/package.json index 9ae0e7ebfb..c8d1787482 100644 --- a/packages/create-rslib/template-solid-ts/package.json +++ b/packages/create-rslib/template-solid-ts/package.json @@ -28,7 +28,7 @@ "@solidjs/testing-library": "^0.8.10", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^7.0.1", - "@types/node": "^26.2.0", + "@types/node": "^24.13.3", "happy-dom": "^20.11.2", "solid-js": "^1.9.14", "typescript": "^6.0.3" diff --git a/packages/create-rslib/template-svelte-ts/package.json b/packages/create-rslib/template-svelte-ts/package.json index 63fdf4cb37..7002945a61 100644 --- a/packages/create-rslib/template-svelte-ts/package.json +++ b/packages/create-rslib/template-svelte-ts/package.json @@ -26,7 +26,7 @@ "@rstest/adapter-rslib": "^0.11.8", "@rstest/core": "^0.11.8", "@tsconfig/svelte": "^5.0.8", - "@types/node": "^26.2.0", + "@types/node": "^24.13.3", "happy-dom": "^20.11.2", "svelte": "^5.56.9", "svelte-check": "^4.7.6", diff --git a/packages/create-rslib/template-vue-ts/package.json b/packages/create-rslib/template-vue-ts/package.json index 90df680466..6f5c6f9ef4 100644 --- a/packages/create-rslib/template-vue-ts/package.json +++ b/packages/create-rslib/template-vue-ts/package.json @@ -24,7 +24,7 @@ "@rstest/adapter-rslib": "^0.11.8", "@rstest/core": "^0.11.8", "@testing-library/jest-dom": "^7.0.1", - "@types/node": "^26.2.0", + "@types/node": "^24.13.3", "@vue/test-utils": "^2.4.11", "happy-dom": "^20.11.2", "typescript": "^6.0.3", From 399e43d32a1691b06df27d1cf2c2f0afb1a21a99 Mon Sep 17 00:00:00 2001 From: Elecmonkey Date: Wed, 19 Aug 2026 13:25:42 +0800 Subject: [PATCH 4/4] refactor(create-rslib): drop redundant module override in svelte-ts tsconfig --- packages/create-rslib/template-svelte-ts/tsconfig.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/create-rslib/template-svelte-ts/tsconfig.json b/packages/create-rslib/template-svelte-ts/tsconfig.json index e00127887e..0cddce6033 100644 --- a/packages/create-rslib/template-svelte-ts/tsconfig.json +++ b/packages/create-rslib/template-svelte-ts/tsconfig.json @@ -12,7 +12,6 @@ "rootDir": "src", /* modules */ - "module": "preserve", "isolatedModules": true, "moduleDetection": "force", "moduleResolution": "bundler",