@@ -61,14 +61,29 @@ export const reactRouterConfig = ({
6161 ` ;
6262} ;
6363
64- type ViteConfigArgs = {
64+ type ViteConfigServerArgs = {
6565 port : number ;
6666 fsAllow ?: string [ ] ;
67+ } ;
68+
69+ type ViteConfigBuildArgs = {
70+ assetsInlineLimit ?: number ;
71+ assetsDir ?: string ;
72+ } ;
73+
74+ type ViteConfigBaseArgs = {
6775 envDir ?: string ;
6876} ;
6977
78+ type ViteConfigArgs = (
79+ | ViteConfigServerArgs
80+ | { [ K in keyof ViteConfigServerArgs ] ?: never }
81+ ) &
82+ ViteConfigBuildArgs &
83+ ViteConfigBaseArgs ;
84+
7085export const viteConfig = {
71- server : async ( args : ViteConfigArgs ) => {
86+ server : async ( args : ViteConfigServerArgs ) => {
7287 let { port, fsAllow } = args ;
7388 let hmrPort = await getPort ( ) ;
7489 let text = dedent `
@@ -81,27 +96,35 @@ export const viteConfig = {
8196 ` ;
8297 return text ;
8398 } ,
84- build : ( ) => {
99+ build : ( { assetsInlineLimit , assetsDir } : ViteConfigBuildArgs = { } ) => {
85100 return dedent `
86- build: await (async () => {
87- const fs = await import("node:fs/promises");
88- const path = await import("node:path");
89- const vitePackageJsonPath = path.join(import.meta.dirname, "node_modules/vite/package.json");
90- const vitePackageJson = JSON.parse(await fs.readFile(vitePackageJsonPath, "utf8"));
91- const isRolldown = vitePackageJson.name === "rolldown-vite";
92-
93- return isRolldown ? {
94- rollupOptions: {
95- // NOTE: ignore missing export errors
96- shimMissingExports: true,
101+ build: {
102+ rollupOptions: await (async () => {
103+ const fs = await import("node:fs/promises");
104+ const path = await import("node:path");
105+ const vitePackageJsonPath = path.join(import.meta.dirname, "node_modules/vite/package.json");
106+ const vitePackageJson = JSON.parse(await fs.readFile(vitePackageJsonPath, "utf8"));
107+ const isRolldown = vitePackageJson.name === "rolldown-vite";
108+
109+ return isRolldown ? {
97110 // NOTE: ignore "The built-in minifier is still under development." warning
98111 onwarn(warning, warn) {
99112 if (warning.code === "MINIFY_WARNING") return;
100113 warn(warning);
101114 },
102- },
103- } : undefined;
104- })(),
115+ } : undefined;
116+ })(),
117+ ${
118+ assetsInlineLimit !== undefined
119+ ? `assetsInlineLimit: ${ JSON . stringify ( assetsInlineLimit ) } ,`
120+ : ""
121+ }
122+ ${
123+ assetsDir !== undefined
124+ ? `assetsDir: ${ JSON . stringify ( assetsDir ) } ,`
125+ : ""
126+ }
127+ },
105128 ` ;
106129 } ,
107130 basic : async ( args : ViteConfigArgs ) => {
@@ -112,8 +135,8 @@ export const viteConfig = {
112135 import fs from "node:fs";
113136
114137 export default async () => ({
115- ${ await viteConfig . server ( args ) }
116- ${ viteConfig . build ( ) }
138+ ${ args . port ? await viteConfig . server ( args ) : "" }
139+ ${ viteConfig . build ( args ) }
117140 envDir: ${ args . envDir ? `"${ args . envDir } "` : "undefined" } ,
118141 plugins: [
119142 reactRouter(),
0 commit comments