Skip to content

Commit d4ddeb5

Browse files
feat: custom vite react/solid plugins (#4609)
1 parent 3193ee9 commit d4ddeb5

File tree

9 files changed

+63
-4
lines changed

9 files changed

+63
-4
lines changed

examples/react/start-basic/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"@types/node": "^22.5.4",
2222
"@types/react": "^19.0.8",
2323
"@types/react-dom": "^19.0.3",
24+
"@vitejs/plugin-react": "^4.6.0",
2425
"autoprefixer": "^10.4.20",
2526
"postcss": "^8.5.1",
2627
"tailwindcss": "^3.4.17",

examples/react/start-basic/vite.config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { tanstackStart } from '@tanstack/react-start/plugin/vite'
22
import { defineConfig } from 'vite'
33
import tsConfigPaths from 'vite-tsconfig-paths'
4+
import viteReact from '@vitejs/plugin-react'
45

56
export default defineConfig({
67
server: {
@@ -10,6 +11,7 @@ export default defineConfig({
1011
tsConfigPaths({
1112
projects: ['./tsconfig.json'],
1213
}),
13-
tanstackStart(),
14+
tanstackStart({ customViteReactPlugin: true }),
15+
viteReact(),
1416
],
1517
})

examples/solid/start-basic/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"tailwindcss": "^3.4.17",
2424
"typescript": "^5.7.2",
2525
"vite": "^6.3.5",
26+
"vite-plugin-solid": "^2.11.7",
2627
"vite-tsconfig-paths": "^5.1.4"
2728
}
2829
}

examples/solid/start-basic/vite.config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { defineConfig } from 'vite'
22
import tsConfigPaths from 'vite-tsconfig-paths'
33
import { tanstackStart } from '@tanstack/solid-start/plugin/vite'
4+
import viteSolid from 'vite-plugin-solid'
45

56
export default defineConfig({
67
server: {
@@ -10,6 +11,7 @@ export default defineConfig({
1011
tsConfigPaths({
1112
projects: ['./tsconfig.json'],
1213
}),
13-
tanstackStart({}),
14+
tanstackStart({ customViteSolidPlugin: true }),
15+
viteSolid({ ssr: true }),
1416
],
1517
})

packages/react-start-plugin/src/index.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@ export function TanStackStartVitePlugin(
1717
WithReactPlugin
1818
const options: OptionsWithReact = getTanStackStartOptions(opts)
1919

20+
if (opts?.customViteReactPlugin !== true) {
21+
console.warn(
22+
`please add the vite-react plugin to your Vite config and set 'customViteReactPlugin: true'`,
23+
)
24+
console.warn(
25+
`TanStack Start will not configure the vite-react plugin in future anymore.`,
26+
)
27+
}
28+
2029
return [
2130
TanStackStartVitePluginCore(
2231
{
@@ -61,7 +70,7 @@ export default createStartHandler({
6170
},
6271
options,
6372
),
64-
viteReact(options.react),
73+
!opts?.customViteReactPlugin && viteReact(options.react),
6574
]
6675
}
6776

packages/react-start-plugin/src/schema.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ import type { Options as ViteReactOptions } from '@vitejs/plugin-react'
77

88
export type WithReactPlugin = {
99
react?: ViteReactOptions
10+
customViteReactPlugin?: boolean
1011
}
1112

1213
const frameworkPlugin = {
1314
react: z.custom<ViteReactOptions>().optional(),
15+
customViteReactPlugin: z.boolean().optional().default(false),
1416
}
1517

1618
// eslint-disable-next-line unused-imports/no-unused-vars

packages/solid-start-plugin/src/index.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@ export function TanStackStartVitePlugin(
1717
WithSolidPlugin
1818
const options: OptionsWithSolid = getTanStackStartOptions(opts)
1919

20+
if (opts?.customViteSolidPlugin !== true) {
21+
console.warn(
22+
`please add the vite-solid plugin to your Vite config and set 'customViteSolidPlugin: true'`,
23+
)
24+
console.warn(
25+
`TanStack Start will not configure the vite-solid plugin in future anymore.`,
26+
)
27+
}
28+
2029
return [
2130
TanStackStartVitePluginCore(
2231
{
@@ -53,7 +62,7 @@ export default createStartHandler({
5362
},
5463
options,
5564
),
56-
viteSolid({ ...options.solid, ssr: true }),
65+
!opts?.customViteSolidPlugin && viteSolid({ ...options.solid, ssr: true }),
5766
]
5867
}
5968

packages/solid-start-plugin/src/schema.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ import type { Options as ViteSolidOptions } from 'vite-plugin-solid'
77

88
export type WithSolidPlugin = {
99
solid?: ViteSolidOptions
10+
customViteSolidPlugin?: boolean
1011
}
1112

1213
const frameworkPlugin = {
1314
solid: z.custom<ViteSolidOptions>().optional(),
15+
customViteSolidPlugin: z.boolean().optional().default(false),
1416
}
1517

1618
// eslint-disable-next-line unused-imports/no-unused-vars

pnpm-lock.yaml

Lines changed: 31 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)