UNPKG

@tanstack/react-start

Version:

Modern and scalable routing for React applications

67 lines (66 loc) 2.83 kB
import { reactStartDefaultEntryPaths, reactStartPluginDir } from "./shared.js"; import { START_ENVIRONMENT_NAMES, tanStackStartVite } from "@tanstack/start-plugin-core"; import { configureRsc, reactStartRscVitePlugin } from "@tanstack/react-start-rsc/plugin/vite"; import path from "pathe"; //#region src/plugin/vite.ts var isInsideRouterMonoRepo = path.basename(path.resolve(reactStartPluginDir, "../../../../")) === "packages"; function tanstackStart(options) { const rscConfig = options?.rsc?.enabled ?? false ? configureRsc() : void 0; let corePluginOpts = { framework: "react", defaultEntryPaths: reactStartDefaultEntryPaths, providerEnvironmentName: START_ENVIRONMENT_NAMES.server, ssrIsProvider: true, ssrResolverStrategy: { type: "default" } }; const serverEnvironments = [START_ENVIRONMENT_NAMES.server, ...rscConfig ? [rscConfig.envName] : []]; if (rscConfig) corePluginOpts = { ...corePluginOpts, providerEnvironmentName: rscConfig.providerEnvironmentName, ssrIsProvider: false, ssrResolverStrategy: rscConfig.ssrResolverStrategy, serializationAdapters: rscConfig.serializationAdapters }; return [ { name: "tanstack-react-start:config", configEnvironment(environmentName, options) { const needsOptimizeDeps = environmentName === START_ENVIRONMENT_NAMES.client || serverEnvironments.includes(environmentName) && options.optimizeDeps?.noDiscovery === false; const reactRouterInNoExternal = Array.isArray(options.resolve?.noExternal) && options.resolve.noExternal.some((pattern) => pattern === "@tanstack/react-router" || typeof pattern === "string" && pattern.includes("react-router")); return { resolve: { dedupe: [ "react", "react-dom", "@tanstack/react-start", "@tanstack/react-router" ], external: options.resolve?.noExternal === true || !isInsideRouterMonoRepo || reactRouterInNoExternal ? void 0 : ["@tanstack/react-router", "@tanstack/react-router-devtools"] }, optimizeDeps: needsOptimizeDeps ? { exclude: [ "@tanstack/react-start", "@tanstack/react-router", "@tanstack/react-router-devtools", "@tanstack/start-static-server-functions" ], include: [ "react", "react/jsx-runtime", "react/jsx-dev-runtime", "react-dom", ...environmentName === START_ENVIRONMENT_NAMES.client ? ["react-dom/client"] : ["react-dom/server"], "@tanstack/react-router > @tanstack/react-store", ...options.optimizeDeps?.exclude?.find((x) => x === "@tanstack/react-form") ? ["@tanstack/react-form > @tanstack/react-store"] : [] ] } : void 0 }; } }, rscConfig ? reactStartRscVitePlugin() : null, tanStackStartVite(corePluginOpts, options) ]; } //#endregion export { tanstackStart }; //# sourceMappingURL=vite.js.map