@tanstack/solid-start
Version:
Modern and scalable routing for Solid applications
50 lines (47 loc) • 1.6 kB
text/typescript
import {
START_ENVIRONMENT_NAMES,
tanStackStartVite,
} from '@tanstack/start-plugin-core'
import type {
TanStackStartViteInputConfig,
TanStackStartVitePluginCoreOptions,
} from '@tanstack/start-plugin-core'
import { solidStartDefaultEntryPaths } from './shared'
import type { PluginOption } from 'vite'
export function tanstackStart(
options?: TanStackStartViteInputConfig,
): Array<PluginOption> {
const corePluginOpts: TanStackStartVitePluginCoreOptions = {
framework: 'solid',
defaultEntryPaths: solidStartDefaultEntryPaths,
providerEnvironmentName: START_ENVIRONMENT_NAMES.server,
ssrIsProvider: true,
ssrResolverStrategy: {
type: 'default',
},
}
return [
{
name: 'tanstack-solid-start:config',
configEnvironment(environmentName, options) {
return {
optimizeDeps:
environmentName === START_ENVIRONMENT_NAMES.client ||
(environmentName === START_ENVIRONMENT_NAMES.server &&
// This indicates that the server environment has opted in to dependency optimization
options.optimizeDeps?.noDiscovery === false)
? {
// As `@tanstack/solid-start` depends on `@tanstack/solid-router`, we should exclude both.
exclude: [
'@tanstack/solid-start',
'@tanstack/solid-router',
'@tanstack/start-static-server-functions',
],
}
: undefined,
}
},
},
tanStackStartVite(corePluginOpts, options),
]
}