diff --git a/.github/renovate.json5 b/.github/renovate.json5
index 388a9462b..61ced90b0 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -36,8 +36,6 @@
     // manually bumping
     "node",
 
-    "generouted", // testing lib shipping JSX (new version ship transpiled JS)
-
     // breaking changes
     "source-map", // `source-map:v0.7.0+` needs more investigation
     "kill-port", // `kill-port:^2.0.0 has perf issues (#8392)
diff --git a/package.json b/package.json
index ffc6ec87b..efc3ce13d 100644
--- a/package.json
+++ b/package.json
@@ -70,15 +70,5 @@
     "playground/**/__tests__/**/*.ts": [
       "eslint --cache --fix"
     ]
-  },
-  "pnpm": {
-    "packageExtensions": {
-      "generouted": {
-        "peerDependencies": {
-          "react": "*",
-          "react-router-dom": "*"
-        }
-      }
-    }
   }
 }
diff --git a/packages/plugin-react-swc/playground/ts-lib/__tests__/ts-lib.spec.ts b/packages/plugin-react-swc/playground/ts-lib/__tests__/ts-lib.spec.ts
index 44e73fd4d..7f3357908 100644
--- a/packages/plugin-react-swc/playground/ts-lib/__tests__/ts-lib.spec.ts
+++ b/packages/plugin-react-swc/playground/ts-lib/__tests__/ts-lib.spec.ts
@@ -1,24 +1,22 @@
-import { expect, test } from '@playwright/test'
+import { type Page, expect, test } from '@playwright/test'
 import { setupBuildAndPreview, setupDevServer } from '../../utils.ts'
 
 test('TS lib build', async ({ page }) => {
   const { testUrl, server } = await setupBuildAndPreview('ts-lib')
   await page.goto(testUrl)
-  await expect(page.locator('main')).toHaveText('Home page')
-
-  await page.locator('a', { hasText: 'About' }).click()
-  await expect(page.locator('main')).toHaveText('About page')
-
+  await testNonJs(page)
   await server.httpServer.close()
 })
 
 test('TS lib dev', async ({ page }) => {
   const { testUrl, server } = await setupDevServer('ts-lib')
   await page.goto(testUrl)
-  await expect(page.locator('main')).toHaveText('Home page')
-
-  await page.locator('a', { hasText: 'About' }).click()
-  await expect(page.locator('main')).toHaveText('About page')
-
+  await testNonJs(page)
   await server.close()
 })
+
+async function testNonJs(page: Page) {
+  await expect(page.getByTestId('test-non-js')).toHaveText('test-non-js: 0')
+  await page.getByTestId('test-non-js').click()
+  await expect(page.getByTestId('test-non-js')).toHaveText('test-non-js: 1')
+}
diff --git a/packages/plugin-react-swc/playground/ts-lib/package.json b/packages/plugin-react-swc/playground/ts-lib/package.json
index 7d175c97e..28b5a65f6 100644
--- a/packages/plugin-react-swc/playground/ts-lib/package.json
+++ b/packages/plugin-react-swc/playground/ts-lib/package.json
@@ -8,11 +8,9 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@generouted/react-router": "^1.20.0",
-    "generouted": "1.11.7",
+    "@vitejs/test-dep-non-js": "file:./test-dep/non-js",
     "react": "^19.1.0",
-    "react-dom": "^19.1.0",
-    "react-router-dom": "^7.6.3"
+    "react-dom": "^19.1.0"
   },
   "devDependencies": {
     "@types/react": "^19.1.8",
diff --git a/packages/plugin-react-swc/playground/ts-lib/src/app.tsx b/packages/plugin-react-swc/playground/ts-lib/src/app.tsx
new file mode 100644
index 000000000..fc8ba7dfa
--- /dev/null
+++ b/packages/plugin-react-swc/playground/ts-lib/src/app.tsx
@@ -0,0 +1,11 @@
+import TestNonJs from '@vitejs/test-dep-non-js'
+
+export default function App() {
+  return (
+    
+  )
+}
diff --git a/packages/plugin-react-swc/playground/ts-lib/src/index.tsx b/packages/plugin-react-swc/playground/ts-lib/src/index.tsx
index 991484efc..c0e262737 100644
--- a/packages/plugin-react-swc/playground/ts-lib/src/index.tsx
+++ b/packages/plugin-react-swc/playground/ts-lib/src/index.tsx
@@ -1,9 +1,9 @@
 import { StrictMode } from 'react'
 import { createRoot } from 'react-dom/client'
-import { Routes } from 'generouted/react-router'
+import App from './app'
 
 createRoot(document.getElementById('root')!).render(
   
-    
+    
   ,
 )
diff --git a/packages/plugin-react-swc/playground/ts-lib/src/pages/404.tsx b/packages/plugin-react-swc/playground/ts-lib/src/pages/404.tsx
deleted file mode 100644
index 6e9fc906c..000000000
--- a/packages/plugin-react-swc/playground/ts-lib/src/pages/404.tsx
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function NotFound() {
-  return 
404
-}
diff --git a/packages/plugin-react-swc/playground/ts-lib/src/pages/_app.tsx b/packages/plugin-react-swc/playground/ts-lib/src/pages/_app.tsx
deleted file mode 100644
index 977445f78..000000000
--- a/packages/plugin-react-swc/playground/ts-lib/src/pages/_app.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Link, Outlet } from 'react-router-dom'
-
-export default function App() {
-  return (
-    
-  )
-}
diff --git a/packages/plugin-react-swc/playground/ts-lib/src/pages/about.tsx b/packages/plugin-react-swc/playground/ts-lib/src/pages/about.tsx
deleted file mode 100644
index 5e6d93641..000000000
--- a/packages/plugin-react-swc/playground/ts-lib/src/pages/about.tsx
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function About() {
-  return About page
-}
diff --git a/packages/plugin-react-swc/playground/ts-lib/src/pages/index.tsx b/packages/plugin-react-swc/playground/ts-lib/src/pages/index.tsx
deleted file mode 100644
index 342887999..000000000
--- a/packages/plugin-react-swc/playground/ts-lib/src/pages/index.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Outlet } from 'react-router-dom'
-
-export default function Home() {
-  return (
-    
-      
Home page
-      
-    
-  )
-}
diff --git a/packages/plugin-react-swc/playground/ts-lib/test-dep/non-js/index.tsx b/packages/plugin-react-swc/playground/ts-lib/test-dep/non-js/index.tsx
new file mode 100644
index 000000000..c3603614c
--- /dev/null
+++ b/packages/plugin-react-swc/playground/ts-lib/test-dep/non-js/index.tsx
@@ -0,0 +1,10 @@
+import React from 'react'
+
+export default function TestNonJs() {
+  const [count, setCount] = React.useState(0)
+  return (
+    
+  )
+}
diff --git a/packages/plugin-react-swc/playground/ts-lib/test-dep/non-js/package.json b/packages/plugin-react-swc/playground/ts-lib/test-dep/non-js/package.json
new file mode 100644
index 000000000..6e098895e
--- /dev/null
+++ b/packages/plugin-react-swc/playground/ts-lib/test-dep/non-js/package.json
@@ -0,0 +1,9 @@
+{
+  "name": "@vitejs/test-dep-non-js",
+  "private": true,
+  "type": "module",
+  "exports": "./index.tsx",
+  "peerDependencies": {
+    "react": "*"
+  }
+}
diff --git a/packages/plugin-react-swc/playground/ts-lib/vite.config.ts b/packages/plugin-react-swc/playground/ts-lib/vite.config.ts
index b9f401547..7af9f6f97 100644
--- a/packages/plugin-react-swc/playground/ts-lib/vite.config.ts
+++ b/packages/plugin-react-swc/playground/ts-lib/vite.config.ts
@@ -2,6 +2,5 @@ import { defineConfig } from 'vite'
 import react from '@vitejs/plugin-react-swc'
 
 export default defineConfig({
-  optimizeDeps: { include: ['react-router-dom'] },
   plugins: [react()],
 })
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index cda6eb118..19c01e53d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,8 +10,6 @@ catalogs:
       specifier: npm:rolldown-vite@^7.0.5
       version: 7.0.5
 
-packageExtensionsChecksum: sha256-S82yCctxnlOTNFuHWCyTFRo/B6Y3jque/4DnsDO4WZA=
-
 importers:
 
   .:
@@ -397,21 +395,15 @@ importers:
 
   packages/plugin-react-swc/playground/ts-lib:
     dependencies:
-      '@generouted/react-router':
-        specifier: ^1.20.0
-        version: 1.20.0(react-router-dom@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-router@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.7.1))
-      generouted:
-        specifier: 1.11.7
-        version: 1.11.7(react-router-dom@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.7.1))
+      '@vitejs/test-dep-non-js':
+        specifier: file:./test-dep/non-js
+        version: file:packages/plugin-react-swc/playground/ts-lib/test-dep/non-js(react@19.1.0)
       react:
         specifier: ^19.1.0
         version: 19.1.0
       react-dom:
         specifier: ^19.1.0
         version: 19.1.0(react@19.1.0)
-      react-router-dom:
-        specifier: ^7.6.3
-        version: 7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
     devDependencies:
       '@types/react':
         specifier: ^19.1.8
@@ -423,6 +415,8 @@ importers:
         specifier: ../../dist
         version: link:../../dist
 
+  packages/plugin-react-swc/playground/ts-lib/test-dep/non-js: {}
+
   packages/plugin-react-swc/playground/worker:
     dependencies:
       react:
@@ -1947,13 +1941,6 @@ packages:
     resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==}
     engines: {node: '>=14'}
 
-  '@generouted/react-router@1.20.0':
-    resolution: {integrity: sha512-VAOdbH/Z2MzroTB61XYsS1uMJvX5am7CKuF/MgF3ZXS6YSvA6rz9pvQxZbg5PIK4R9h7bsA/oRQlJNLSgQKjEA==}
-    peerDependencies:
-      react: '>=18'
-      react-router: '>=7'
-      vite: '>=5'
-
   '@hiogawa/utils@1.7.0':
     resolution: {integrity: sha512-ghiEFWBR1NENoHn+lSuW7liicTIzVPN+8Srm5UedCTw43gus0mlse6Wp2lz6GmbOXJ/CalMPp/0Tz2X8tajkAg==}
 
@@ -3010,6 +2997,11 @@ packages:
     peerDependencies:
       react: '*'
 
+  '@vitejs/test-dep-non-js@file:packages/plugin-react-swc/playground/ts-lib/test-dep/non-js':
+    resolution: {directory: packages/plugin-react-swc/playground/ts-lib/test-dep/non-js, type: directory}
+    peerDependencies:
+      react: '*'
+
   '@vitejs/test-dep-server-in-client@file:packages/plugin-rsc/examples/basic/test-dep/server-in-client':
     resolution: {directory: packages/plugin-rsc/examples/basic/test-dep/server-in-client, type: directory}
     peerDependencies:
@@ -3806,20 +3798,6 @@ packages:
   function-bind@1.1.2:
     resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
 
-  generouted@1.11.7:
-    resolution: {integrity: sha512-CFOF2N8upP84E5Lh7l1F9lC7XgHHkokKMptC+zD/T7K2f++gQH6OEIUv7XIIuwWfZAz8DtdQXVph4bB5Wg8vcw==}
-    peerDependencies:
-      react: '*'
-      react-router-dom: '*'
-      vite: '>=3'
-
-  generouted@1.20.0:
-    resolution: {integrity: sha512-VXU5dFsWdm/faFo2fTGW5obYxy8hhM6B1WXYhCLAV+5pODhrsu8RBc/1IsOQKqtHFYqsuSE5C5KpzmBaLllUqg==}
-    peerDependencies:
-      react: '*'
-      react-router-dom: '*'
-      vite: '>=5'
-
   gensync@1.0.0-beta.2:
     resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
     engines: {node: '>=6.9.0'}
@@ -4924,13 +4902,6 @@ packages:
     resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
     engines: {node: '>=0.10.0'}
 
-  react-router-dom@7.6.3:
-    resolution: {integrity: sha512-DiWJm9qdUAmiJrVWaeJdu4TKu13+iB/8IEi0EW/XgaHCjW/vWGrwzup0GVvaMteuZjKnh5bEvJP/K0MDnzawHw==}
-    engines: {node: '>=20.0.0'}
-    peerDependencies:
-      react: '>=18'
-      react-dom: '>=18'
-
   react-router@0.0.0-experimental-23decd7bc:
     resolution: {integrity: sha512-oTDa74rdP6WACxX8wihI71TiwQa+3aAXNjGGm20OAyA4hGdfe0VBEbJvuIT0vxR+LKsJisI4rpaq0boBGY3m+g==}
     engines: {node: '>=20.0.0'}
@@ -4941,16 +4912,6 @@ packages:
       react-dom:
         optional: true
 
-  react-router@7.6.3:
-    resolution: {integrity: sha512-zf45LZp5skDC6I3jDLXQUu0u26jtuP4lEGbc7BbdyxenBN1vJSTA18czM2D+h5qyMBuMrD+9uB+mU37HIoKGRA==}
-    engines: {node: '>=20.0.0'}
-    peerDependencies:
-      react: '>=18'
-      react-dom: '>=18'
-    peerDependenciesMeta:
-      react-dom:
-        optional: true
-
   react-server-dom-webpack@19.1.0:
     resolution: {integrity: sha512-GUbawkNSN0oj8GnuNhMzsvyIHpXqqpAmyOY5NRqNNQ/M8wvUUN8YBoGjDUj9lbmBrmAHS65BByp6325CcWA0eg==}
     engines: {node: '>=0.10.0'}
@@ -6584,16 +6545,6 @@ snapshots:
 
   '@fastify/busboy@2.1.1': {}
 
-  '@generouted/react-router@1.20.0(react-router-dom@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-router@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.7.1))':
-    dependencies:
-      fast-glob: 3.3.3
-      generouted: 1.20.0(react-router-dom@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.7.1))
-      react: 19.1.0
-      react-router: 7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
-      vite: 7.0.2(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.7.1)
-    transitivePeerDependencies:
-      - react-router-dom
-
   '@hiogawa/utils@1.7.0': {}
 
   '@humanfs/core@0.19.1': {}
@@ -7572,6 +7523,10 @@ snapshots:
     dependencies:
       react: 19.1.0
 
+  '@vitejs/test-dep-non-js@file:packages/plugin-react-swc/playground/ts-lib/test-dep/non-js(react@19.1.0)':
+    dependencies:
+      react: 19.1.0
+
   '@vitejs/test-dep-server-in-client@file:packages/plugin-rsc/examples/basic/test-dep/server-in-client(react@19.1.0)':
     dependencies:
       react: 19.1.0
@@ -8476,18 +8431,6 @@ snapshots:
 
   function-bind@1.1.2: {}
 
-  generouted@1.11.7(react-router-dom@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.7.1)):
-    dependencies:
-      react: 19.1.0
-      react-router-dom: 7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
-      vite: 7.0.2(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.7.1)
-
-  generouted@1.20.0(react-router-dom@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.7.1)):
-    dependencies:
-      react: 19.1.0
-      react-router-dom: 7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
-      vite: 7.0.2(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.7.1)
-
   gensync@1.0.0-beta.2: {}
 
   get-east-asian-width@1.2.0: {}
@@ -9712,12 +9655,6 @@ snapshots:
 
   react-refresh@0.17.0: {}
 
-  react-router-dom@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
-    dependencies:
-      react: 19.1.0
-      react-dom: 19.1.0(react@19.1.0)
-      react-router: 7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
-
   react-router@0.0.0-experimental-23decd7bc(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
     dependencies:
       cookie: 1.0.2
@@ -9726,14 +9663,6 @@ snapshots:
     optionalDependencies:
       react-dom: 19.1.0(react@19.1.0)
 
-  react-router@7.6.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
-    dependencies:
-      cookie: 1.0.2
-      react: 19.1.0
-      set-cookie-parser: 2.7.1
-    optionalDependencies:
-      react-dom: 19.1.0(react@19.1.0)
-
   react-server-dom-webpack@19.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
     dependencies:
       acorn-loose: 8.5.2