Skip to content

Commit 9348ace

Browse files
Omit route components from non-SSR builds when ssr: false (#1481)
* dataOnly server fs routing * Create twenty-monkeys-marry.md --------- Co-authored-by: Ryan Carniato <[email protected]>
1 parent eb296f2 commit 9348ace

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

.changeset/twenty-monkeys-marry.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@solidjs/start": patch
3+
---
4+
5+
Omit route components from non-SSR builds

packages/start/config/fs-router.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,13 @@ export class SolidStartServerFileRouter extends BaseFileSystemRouter {
109109
const hasAPIRoutes = exports.find(exp => HTTP_METHODS.includes(exp.n));
110110
if (hasDefault || hasAPIRoutes) {
111111
return {
112-
$component: hasDefault
113-
? {
114-
src: src,
115-
pick: ["default", "$css"]
116-
}
117-
: undefined,
112+
$component:
113+
!this.config.dataOnly && hasDefault
114+
? {
115+
src: src,
116+
pick: ["default", "$css"]
117+
}
118+
: undefined,
118119
$$route: hasRouteConfig
119120
? {
120121
src: src,

packages/start/config/index.js

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ function solidStartServerFsRouter(config) {
3030
new SolidStartServerFileRouter(
3131
{
3232
dir: resolve.absolute(config.dir, router.root),
33-
extensions: config.extensions ?? DEFAULT_EXTENSIONS
33+
extensions: config.extensions ?? DEFAULT_EXTENSIONS,
34+
dataOnly: config.dataOnly
3435
},
3536
router,
3637
app
@@ -90,7 +91,7 @@ export function defineConfig(baseConfig = {}) {
9091
},
9192
handler: `${start.appRoot}/entry-server${entryExtension}`,
9293
middleware: start.middleware,
93-
routes: solidStartServerFsRouter({ dir: routeDir, extensions }),
94+
routes: solidStartServerFsRouter({ dir: routeDir, extensions, dataOnly: !start.ssr }),
9495
extensions,
9596
target: "server",
9697
plugins: async () => {
@@ -133,7 +134,9 @@ export function defineConfig(baseConfig = {}) {
133134
},
134135
cacheDir: "node_modules/.vinxi/server",
135136
define: {
136-
"import.meta.env.START_APP": JSON.stringify(`${start.appRoot}/app${entryExtension}`),
137+
"import.meta.env.START_APP": JSON.stringify(
138+
`${start.appRoot}/app${entryExtension}`
139+
),
137140
"import.meta.env.START_ISLANDS": JSON.stringify(start.experimental.islands),
138141
"import.meta.env.SSR": JSON.stringify(true),
139142
"import.meta.env.START_SSR": JSON.stringify(start.ssr),
@@ -201,7 +204,9 @@ export function defineConfig(baseConfig = {}) {
201204
},
202205
cacheDir: "node_modules/.vinxi/client",
203206
define: {
204-
"import.meta.env.START_APP": JSON.stringify(`${start.appRoot}/app${entryExtension}`),
207+
"import.meta.env.START_APP": JSON.stringify(
208+
`${start.appRoot}/app${entryExtension}`
209+
),
205210
"import.meta.env.START_ISLANDS": JSON.stringify(start.experimental.islands),
206211
"import.meta.env.SSR": JSON.stringify(false),
207212
"import.meta.env.START_SSR": JSON.stringify(start.ssr),
@@ -213,7 +218,6 @@ export function defineConfig(baseConfig = {}) {
213218
];
214219
}
215220
},
216-
217221
{
218222
name: "server-fns",
219223
type: "http",
@@ -223,7 +227,7 @@ export function defineConfig(baseConfig = {}) {
223227
),
224228
middleware: start.middleware,
225229
target: "server",
226-
routes: solidStartServerFsRouter({ dir: routeDir, extensions }),
230+
routes: solidStartServerFsRouter({ dir: routeDir, extensions, dataOnly: !start.ssr }),
227231
plugins: async () => {
228232
const userConfig =
229233
typeof vite === "function" ? await vite({ router: "server-function" }) : { ...vite };
@@ -263,7 +267,9 @@ export function defineConfig(baseConfig = {}) {
263267
}
264268
},
265269
define: {
266-
"import.meta.env.START_APP": JSON.stringify(`${start.appRoot}/app${entryExtension}`),
270+
"import.meta.env.START_APP": JSON.stringify(
271+
`${start.appRoot}/app${entryExtension}`
272+
),
267273
"import.meta.env.START_ISLANDS": JSON.stringify(start.experimental.islands),
268274
"import.meta.env.SSR": JSON.stringify(true),
269275
"import.meta.env.START_SSR": JSON.stringify(start.ssr),

0 commit comments

Comments
 (0)