diff --git a/e2e/solid-router/basepath-file-based/package.json b/e2e/solid-router/basepath-file-based/package.json
index 4e6b06172a8..ad493629bef 100644
--- a/e2e/solid-router/basepath-file-based/package.json
+++ b/e2e/solid-router/basepath-file-based/package.json
@@ -1,5 +1,5 @@
{
- "name": "tanstack-solid-router-e2e-react-basepath-file-based",
+ "name": "tanstack-router-e2e-solid-basepath-file-based",
"private": true,
"type": "module",
"scripts": {
diff --git a/e2e/solid-router/generator-cli-only/package.json b/e2e/solid-router/generator-cli-only/package.json
index 8e0082d3d74..7831af375d1 100644
--- a/e2e/solid-router/generator-cli-only/package.json
+++ b/e2e/solid-router/generator-cli-only/package.json
@@ -1,5 +1,5 @@
{
- "name": "tanstack-solid-router-e2e-react-generator-cli-only",
+ "name": "tanstack-router-e2e-solid-generator-cli-only",
"private": true,
"type": "module",
"scripts": {
diff --git a/e2e/solid-router/js-only-file-based/.gitignore b/e2e/solid-router/js-only-file-based/.gitignore
new file mode 100644
index 00000000000..218ef7614ba
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/.gitignore
@@ -0,0 +1,11 @@
+node_modules
+.DS_Store
+dist
+dist-hash
+dist-ssr
+*.local
+
+/test-results/
+/playwright-report/
+/blob-report/
+/playwright/.cache/
\ No newline at end of file
diff --git a/e2e/solid-router/js-only-file-based/index.html b/e2e/solid-router/js-only-file-based/index.html
new file mode 100644
index 00000000000..5f9851cdc92
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+ Vite App
+
+
+
+
+
+
diff --git a/e2e/solid-router/js-only-file-based/package.json b/e2e/solid-router/js-only-file-based/package.json
new file mode 100644
index 00000000000..5ed71f23805
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/package.json
@@ -0,0 +1,29 @@
+{
+ "name": "tanstack-router-e2e-solid-js-only-file-based",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite --port 3000",
+ "dev:e2e": "vite",
+ "build": "vite build && tsc --noEmit",
+ "serve": "vite preview",
+ "start": "vite",
+ "test:e2e": "rm -rf port*.txt; playwright test --project=chromium"
+ },
+ "dependencies": {
+ "@tailwindcss/postcss": "^4.1.15",
+ "@tanstack/solid-router": "workspace:^",
+ "@tanstack/solid-router-devtools": "workspace:^",
+ "postcss": "^8.5.1",
+ "solid-js": "^1.9.9",
+ "redaxios": "^0.5.1",
+ "tailwindcss": "^4.1.15"
+ },
+ "devDependencies": {
+ "@playwright/test": "^1.50.1",
+ "@tanstack/router-e2e-utils": "workspace:^",
+ "@tanstack/router-plugin": "workspace:^",
+ "vite-plugin-solid": "^2.11.10",
+ "vite": "^7.1.7"
+ }
+}
diff --git a/e2e/solid-router/js-only-file-based/playwright.config.ts b/e2e/solid-router/js-only-file-based/playwright.config.ts
new file mode 100644
index 00000000000..9e24e14fefa
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/playwright.config.ts
@@ -0,0 +1,42 @@
+import { defineConfig, devices } from '@playwright/test'
+import {
+ getDummyServerPort,
+ getTestServerPort,
+} from '@tanstack/router-e2e-utils'
+import packageJson from './package.json' with { type: 'json' }
+
+const PORT = await getTestServerPort(packageJson.name)
+const EXTERNAL_PORT = await getDummyServerPort(packageJson.name)
+const baseURL = `http://localhost:${PORT}`
+
+/**
+ * See https://playwright.dev/docs/test-configuration.
+ */
+export default defineConfig({
+ testDir: './tests',
+ workers: 1,
+
+ reporter: [['line']],
+
+ globalSetup: './tests/setup/global.setup.ts',
+ globalTeardown: './tests/setup/global.teardown.ts',
+
+ use: {
+ /* Base URL to use in actions like `await page.goto('/')`. */
+ baseURL,
+ },
+
+ webServer: {
+ command: `VITE_NODE_ENV="test" VITE_EXTERNAL_PORT=${EXTERNAL_PORT} VITE_SERVER_PORT=${PORT} pnpm build && pnpm serve --port ${PORT}`,
+ url: baseURL,
+ reuseExistingServer: !process.env.CI,
+ stdout: 'pipe',
+ },
+
+ projects: [
+ {
+ name: 'chromium',
+ use: { ...devices['Desktop Chrome'] },
+ },
+ ],
+})
diff --git a/e2e/solid-router/js-only-file-based/postcss.config.mjs b/e2e/solid-router/js-only-file-based/postcss.config.mjs
new file mode 100644
index 00000000000..a7f73a2d1d7
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/postcss.config.mjs
@@ -0,0 +1,5 @@
+export default {
+ plugins: {
+ '@tailwindcss/postcss': {},
+ },
+}
diff --git a/e2e/solid-router/js-only-file-based/src/main.jsx b/e2e/solid-router/js-only-file-based/src/main.jsx
new file mode 100644
index 00000000000..0e691e3e3cb
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/main.jsx
@@ -0,0 +1,18 @@
+import { RouterProvider, createRouter } from '@tanstack/solid-router'
+import { routeTree } from './routeTree.gen'
+import { render } from 'solid-js/web'
+import './styles.css'
+
+// Set up a Router instance
+const router = createRouter({
+ routeTree,
+ defaultPreload: 'intent',
+ defaultStaleTime: 5000,
+ scrollRestoration: true,
+})
+
+const rootElement = document.getElementById('app')
+
+if (!rootElement.innerHTML) {
+ render(() => , rootElement)
+}
diff --git a/e2e/solid-router/js-only-file-based/src/posts.js b/e2e/solid-router/js-only-file-based/src/posts.js
new file mode 100644
index 00000000000..979e5e381c5
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/posts.js
@@ -0,0 +1,27 @@
+import axios from 'redaxios'
+
+export class NotFoundError extends Error {}
+
+let queryURL = 'https://jsonplaceholder.typicode.com'
+
+if (import.meta.env.VITE_NODE_ENV === 'test') {
+ queryURL = `http://localhost:${import.meta.env.VITE_EXTERNAL_PORT}`
+}
+
+export const fetchPosts = async () => {
+ console.info('Fetching posts...')
+ return axios.get(`${queryURL}/posts`).then((r) => r.data.slice(0, 10))
+}
+
+export const fetchPost = async (postId) => {
+ console.info(`Fetching post with id ${postId}...`)
+ const post = await axios
+ .get(`${queryURL}/posts/${postId}`)
+ .then((r) => r.data)
+
+ if (!post) {
+ throw new NotFoundError(`Post with id "${postId}" not found!`)
+ }
+
+ return post
+}
diff --git a/e2e/solid-router/js-only-file-based/src/routeTree.gen.js b/e2e/solid-router/js-only-file-based/src/routeTree.gen.js
new file mode 100644
index 00000000000..f2d42e5a6c9
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/routeTree.gen.js
@@ -0,0 +1,95 @@
+/* eslint-disable */
+
+// @ts-nocheck
+
+// noinspection JSUnusedGlobalSymbols
+
+// This file was automatically generated by TanStack Router.
+// You should NOT make any changes in this file as it will be overwritten.
+// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
+
+import { Route as rootRouteImport } from './routes/__root'
+import { Route as PathlessLayoutRouteImport } from './routes/_pathlessLayout'
+import { Route as PostsRouteRouteImport } from './routes/posts.route'
+import { Route as IndexRouteImport } from './routes/index'
+import { Route as PostsIndexRouteImport } from './routes/posts.index'
+import { Route as PostsPostIdRouteImport } from './routes/posts.$postId'
+import { Route as PathlessLayoutNestedLayoutRouteImport } from './routes/_pathlessLayout/_nested-layout'
+import { Route as PathlessLayoutNestedLayoutRouteBRouteImport } from './routes/_pathlessLayout/_nested-layout/route-b'
+import { Route as PathlessLayoutNestedLayoutRouteARouteImport } from './routes/_pathlessLayout/_nested-layout/route-a'
+
+const PathlessLayoutRoute = PathlessLayoutRouteImport.update({
+ id: '/_pathlessLayout',
+ getParentRoute: () => rootRouteImport,
+})
+const PostsRouteRoute = PostsRouteRouteImport.update({
+ id: '/posts',
+ path: '/posts',
+ getParentRoute: () => rootRouteImport,
+})
+const IndexRoute = IndexRouteImport.update({
+ id: '/',
+ path: '/',
+ getParentRoute: () => rootRouteImport,
+})
+const PostsIndexRoute = PostsIndexRouteImport.update({
+ id: '/',
+ path: '/',
+ getParentRoute: () => PostsRouteRoute,
+})
+const PostsPostIdRoute = PostsPostIdRouteImport.update({
+ id: '/$postId',
+ path: '/$postId',
+ getParentRoute: () => PostsRouteRoute,
+})
+const PathlessLayoutNestedLayoutRoute =
+ PathlessLayoutNestedLayoutRouteImport.update({
+ id: '/_nested-layout',
+ getParentRoute: () => PathlessLayoutRoute,
+ })
+const PathlessLayoutNestedLayoutRouteBRoute =
+ PathlessLayoutNestedLayoutRouteBRouteImport.update({
+ id: '/route-b',
+ path: '/route-b',
+ getParentRoute: () => PathlessLayoutNestedLayoutRoute,
+ })
+const PathlessLayoutNestedLayoutRouteARoute =
+ PathlessLayoutNestedLayoutRouteARouteImport.update({
+ id: '/route-a',
+ path: '/route-a',
+ getParentRoute: () => PathlessLayoutNestedLayoutRoute,
+ })
+
+const PostsRouteRouteChildren = {
+ PostsPostIdRoute: PostsPostIdRoute,
+ PostsIndexRoute: PostsIndexRoute,
+}
+
+const PostsRouteRouteWithChildren = PostsRouteRoute._addFileChildren(
+ PostsRouteRouteChildren,
+)
+
+const PathlessLayoutNestedLayoutRouteChildren = {
+ PathlessLayoutNestedLayoutRouteARoute: PathlessLayoutNestedLayoutRouteARoute,
+ PathlessLayoutNestedLayoutRouteBRoute: PathlessLayoutNestedLayoutRouteBRoute,
+}
+
+const PathlessLayoutNestedLayoutRouteWithChildren =
+ PathlessLayoutNestedLayoutRoute._addFileChildren(
+ PathlessLayoutNestedLayoutRouteChildren,
+ )
+
+const PathlessLayoutRouteChildren = {
+ PathlessLayoutNestedLayoutRoute: PathlessLayoutNestedLayoutRouteWithChildren,
+}
+
+const PathlessLayoutRouteWithChildren = PathlessLayoutRoute._addFileChildren(
+ PathlessLayoutRouteChildren,
+)
+
+const rootRouteChildren = {
+ IndexRoute: IndexRoute,
+ PostsRouteRoute: PostsRouteRouteWithChildren,
+ PathlessLayoutRoute: PathlessLayoutRouteWithChildren,
+}
+export const routeTree = rootRouteImport._addFileChildren(rootRouteChildren)
diff --git a/e2e/solid-router/js-only-file-based/src/routes/__root.jsx b/e2e/solid-router/js-only-file-based/src/routes/__root.jsx
new file mode 100644
index 00000000000..67bc9248fab
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/routes/__root.jsx
@@ -0,0 +1,61 @@
+import { Link, Outlet, createRootRoute } from '@tanstack/solid-router'
+import { TanStackRouterDevtools } from '@tanstack/solid-router-devtools'
+
+export const Route = createRootRoute({
+ component: RootComponent,
+ notFoundComponent: () => {
+ return (
+
+
This is the notFoundComponent configured on root route
+
Start Over
+
+ )
+ },
+})
+
+function RootComponent() {
+ return (
+ <>
+
+
+ Home
+ {' '}
+
+ Posts
+ {' '}
+
+ Pathless Layout
+ {' '}
+
+ This Route Does Not Exist
+
+
+
+
+ {/* Start rendering router matches */}
+
+ >
+ )
+}
diff --git a/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout.jsx b/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout.jsx
new file mode 100644
index 00000000000..7cdec28d8d9
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout.jsx
@@ -0,0 +1,17 @@
+import { createFileRoute } from '@tanstack/solid-router'
+import { Outlet } from '@tanstack/solid-router'
+
+export const Route = createFileRoute('/_pathlessLayout')({
+ component: LayoutComponent,
+})
+
+function LayoutComponent() {
+ return (
+
+
I'm a pathless layout
+
+
+
+
+ )
+}
diff --git a/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout.jsx b/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout.jsx
new file mode 100644
index 00000000000..bea54d9af4a
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout.jsx
@@ -0,0 +1,35 @@
+import { createFileRoute } from '@tanstack/solid-router'
+import { Link, Outlet } from '@tanstack/solid-router'
+
+export const Route = createFileRoute('/_pathlessLayout/_nested-layout')({
+ component: LayoutComponent,
+})
+
+function LayoutComponent() {
+ return (
+
+
I'm a nested pathless layout
+
+
+ Go to route A
+
+
+ Go to route B
+
+
+
+
+
+
+ )
+}
diff --git a/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout/route-a.jsx b/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout/route-a.jsx
new file mode 100644
index 00000000000..16b0aea0c55
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout/route-a.jsx
@@ -0,0 +1,10 @@
+import { createFileRoute } from '@tanstack/solid-router'
+export const Route = createFileRoute('/_pathlessLayout/_nested-layout/route-a')(
+ {
+ component: LayoutAComponent,
+ },
+)
+
+function LayoutAComponent() {
+ return I'm layout A!
+}
diff --git a/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout/route-b.jsx b/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout/route-b.jsx
new file mode 100644
index 00000000000..4e592567bbe
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/routes/_pathlessLayout/_nested-layout/route-b.jsx
@@ -0,0 +1,10 @@
+import { createFileRoute } from '@tanstack/solid-router'
+export const Route = createFileRoute('/_pathlessLayout/_nested-layout/route-b')(
+ {
+ component: LayoutBComponent,
+ },
+)
+
+function LayoutBComponent() {
+ return I'm layout B!
+}
diff --git a/e2e/solid-router/js-only-file-based/src/routes/index.jsx b/e2e/solid-router/js-only-file-based/src/routes/index.jsx
new file mode 100644
index 00000000000..bdfb4c76768
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/routes/index.jsx
@@ -0,0 +1,13 @@
+import { createFileRoute } from '@tanstack/solid-router'
+
+export const Route = createFileRoute('/')({
+ component: Home,
+})
+
+function Home() {
+ return (
+
+
Welcome Home!
+
+ )
+}
diff --git a/e2e/solid-router/js-only-file-based/src/routes/posts.$postId.jsx b/e2e/solid-router/js-only-file-based/src/routes/posts.$postId.jsx
new file mode 100644
index 00000000000..26bcb3bb7ef
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/routes/posts.$postId.jsx
@@ -0,0 +1,28 @@
+import { createFileRoute } from '@tanstack/solid-router'
+
+import { ErrorComponent } from '@tanstack/solid-router'
+import { fetchPost } from '../posts'
+
+export const Route = createFileRoute('/posts/$postId')({
+ loader: async ({ params: { postId } }) => fetchPost(postId),
+ errorComponent: PostErrorComponent,
+ notFoundComponent: () => {
+ return Post not found
+ },
+ component: PostComponent,
+})
+
+export function PostErrorComponent({ error }) {
+ return
+}
+
+function PostComponent() {
+ const post = Route.useLoaderData()
+
+ return (
+
+
{post().title}
+
{post().body}
+
+ )
+}
diff --git a/e2e/solid-router/js-only-file-based/src/routes/posts.index.jsx b/e2e/solid-router/js-only-file-based/src/routes/posts.index.jsx
new file mode 100644
index 00000000000..33d0386c195
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/routes/posts.index.jsx
@@ -0,0 +1,9 @@
+import { createFileRoute } from '@tanstack/solid-router'
+
+export const Route = createFileRoute('/posts/')({
+ component: PostsIndexComponent,
+})
+
+function PostsIndexComponent() {
+ return Select a post.
+}
diff --git a/e2e/solid-router/js-only-file-based/src/routes/posts.route.jsx b/e2e/solid-router/js-only-file-based/src/routes/posts.route.jsx
new file mode 100644
index 00000000000..db486f38352
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/routes/posts.route.jsx
@@ -0,0 +1,40 @@
+import { createFileRoute } from '@tanstack/solid-router'
+
+import { Link, Outlet } from '@tanstack/solid-router'
+import { fetchPosts } from '../posts'
+
+export const Route = createFileRoute('/posts')({
+ loader: fetchPosts,
+ component: PostsLayoutComponent,
+})
+
+function PostsLayoutComponent() {
+ const posts = Route.useLoaderData()
+
+ return (
+
+ )
+}
diff --git a/e2e/solid-router/js-only-file-based/src/styles.css b/e2e/solid-router/js-only-file-based/src/styles.css
new file mode 100644
index 00000000000..37a1064738a
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/src/styles.css
@@ -0,0 +1,21 @@
+@import 'tailwindcss';
+
+@layer base {
+ *,
+ ::after,
+ ::before,
+ ::backdrop,
+ ::file-selector-button {
+ border-color: var(--color-gray-200, currentcolor);
+ }
+}
+
+html {
+ color-scheme: light dark;
+}
+* {
+ @apply border-gray-200 dark:border-gray-800;
+}
+body {
+ @apply bg-gray-50 text-gray-950 dark:bg-gray-900 dark:text-gray-200;
+}
diff --git a/e2e/solid-router/js-only-file-based/tests/app.spec.ts b/e2e/solid-router/js-only-file-based/tests/app.spec.ts
new file mode 100644
index 00000000000..5a83a314f20
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/tests/app.spec.ts
@@ -0,0 +1,35 @@
+import { expect, test } from '@playwright/test'
+
+test.beforeEach(async ({ page }) => {
+ await page.goto('/')
+})
+
+test('Navigating to a post page', async ({ page }) => {
+ await page.getByRole('link', { name: 'Posts', exact: true }).click()
+ await page.getByRole('link', { name: 'sunt aut facere repe' }).click()
+ await expect(page.getByRole('heading')).toContainText('sunt aut facere')
+})
+
+test('Navigating nested pathless layouts', async ({ page }) => {
+ await page.getByRole('link', { name: 'Pathless Layout', exact: true }).click()
+
+ await expect(page.locator('#app')).toContainText("I'm a pathless layout")
+ await expect(page.locator('#app')).toContainText(
+ "I'm a nested pathless layout",
+ )
+
+ await page.getByRole('link', { name: 'Go to route A' }).click()
+ await expect(page.locator('#app')).toContainText("I'm layout A!")
+
+ await page.getByRole('link', { name: 'Go to route B' }).click()
+ await expect(page.locator('#app')).toContainText("I'm layout B!")
+})
+
+test('Navigating to a not-found route', async ({ page }) => {
+ await page.getByRole('link', { name: 'This Route Does Not Exist' }).click()
+ await expect(page.getByRole('paragraph')).toContainText(
+ 'This is the notFoundComponent configured on root route',
+ )
+ await page.getByRole('link', { name: 'Start Over' }).click()
+ await expect(page.getByRole('heading')).toContainText('Welcome Home!')
+})
diff --git a/e2e/solid-router/js-only-file-based/tests/setup/global.setup.ts b/e2e/solid-router/js-only-file-based/tests/setup/global.setup.ts
new file mode 100644
index 00000000000..3593d10ab90
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/tests/setup/global.setup.ts
@@ -0,0 +1,6 @@
+import { e2eStartDummyServer } from '@tanstack/router-e2e-utils'
+import packageJson from '../../package.json' with { type: 'json' }
+
+export default async function setup() {
+ await e2eStartDummyServer(packageJson.name)
+}
diff --git a/e2e/solid-router/js-only-file-based/tests/setup/global.teardown.ts b/e2e/solid-router/js-only-file-based/tests/setup/global.teardown.ts
new file mode 100644
index 00000000000..62fd79911cc
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/tests/setup/global.teardown.ts
@@ -0,0 +1,6 @@
+import { e2eStopDummyServer } from '@tanstack/router-e2e-utils'
+import packageJson from '../../package.json' with { type: 'json' }
+
+export default async function teardown() {
+ await e2eStopDummyServer(packageJson.name)
+}
diff --git a/e2e/solid-router/js-only-file-based/tsconfig.json b/e2e/solid-router/js-only-file-based/tsconfig.json
new file mode 100644
index 00000000000..e011e786b59
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "strict": true,
+ "esModuleInterop": true,
+ "jsx": "preserve",
+ "jsxImportSource": "solid-js",
+ "target": "ESNext",
+ "moduleResolution": "Bundler",
+ "module": "ESNext",
+ "resolveJsonModule": true,
+ "allowJs": true,
+ "skipLibCheck": true
+ },
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/e2e/solid-router/js-only-file-based/vite.config.js b/e2e/solid-router/js-only-file-based/vite.config.js
new file mode 100644
index 00000000000..9cc3d84430a
--- /dev/null
+++ b/e2e/solid-router/js-only-file-based/vite.config.js
@@ -0,0 +1,14 @@
+import { defineConfig } from 'vite'
+import solid from 'vite-plugin-solid'
+import { tanstackRouter } from '@tanstack/router-plugin/vite'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [
+ tanstackRouter({
+ target: 'solid',
+ disableTypes: true,
+ }),
+ solid(),
+ ],
+})
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f4830afb555..8d4ade58009 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -2445,6 +2445,46 @@ importers:
specifier: ^2.11.10
version: 2.11.10(@testing-library/jest-dom@6.6.3)(solid-js@1.9.9)(vite@7.1.7(@types/node@22.10.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.8.1))
+ e2e/solid-router/js-only-file-based:
+ dependencies:
+ '@tailwindcss/postcss':
+ specifier: ^4.1.15
+ version: 4.1.15
+ '@tanstack/solid-router':
+ specifier: workspace:^
+ version: link:../../../packages/solid-router
+ '@tanstack/solid-router-devtools':
+ specifier: workspace:^
+ version: link:../../../packages/solid-router-devtools
+ postcss:
+ specifier: ^8.5.1
+ version: 8.5.6
+ redaxios:
+ specifier: ^0.5.1
+ version: 0.5.1
+ solid-js:
+ specifier: 1.9.9
+ version: 1.9.9
+ tailwindcss:
+ specifier: ^4.1.15
+ version: 4.1.15
+ devDependencies:
+ '@playwright/test':
+ specifier: ^1.52.0
+ version: 1.52.0
+ '@tanstack/router-e2e-utils':
+ specifier: workspace:^
+ version: link:../../e2e-utils
+ '@tanstack/router-plugin':
+ specifier: workspace:*
+ version: link:../../../packages/router-plugin
+ vite:
+ specifier: ^7.1.7
+ version: 7.1.7(@types/node@22.10.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.8.1)
+ vite-plugin-solid:
+ specifier: ^2.11.10
+ version: 2.11.10(@testing-library/jest-dom@6.6.3)(solid-js@1.9.9)(vite@7.1.7(@types/node@22.10.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(tsx@4.20.3)(yaml@2.8.1))
+
e2e/solid-router/rspack-basic-file-based:
dependencies:
'@tanstack/solid-router':