( optimizeDeps: DepOptimizationOptions | undefined, preserveSymlinks: boolean, forceOptimizeDeps: boolean | undefined, consumer: 'client' | 'server' | undefined, logger: Logger, )
| 1191 | |
| 1192 | // TODO: Introduce ResolvedDepOptimizationOptions |
| 1193 | function resolveDepOptimizationOptions( |
| 1194 | optimizeDeps: DepOptimizationOptions | undefined, |
| 1195 | preserveSymlinks: boolean, |
| 1196 | forceOptimizeDeps: boolean | undefined, |
| 1197 | consumer: 'client' | 'server' | undefined, |
| 1198 | logger: Logger, |
| 1199 | ): DepOptimizationOptions { |
| 1200 | if ( |
| 1201 | optimizeDeps?.rolldownOptions && |
| 1202 | optimizeDeps?.rolldownOptions === optimizeDeps?.rollupOptions |
| 1203 | ) { |
| 1204 | delete optimizeDeps?.rollupOptions |
| 1205 | } |
| 1206 | const merged = mergeWithDefaults( |
| 1207 | { |
| 1208 | ...configDefaults.optimizeDeps, |
| 1209 | disabled: undefined, // do not set here to avoid deprecation warning |
| 1210 | noDiscovery: consumer !== 'client', |
| 1211 | force: forceOptimizeDeps ?? configDefaults.optimizeDeps.force, |
| 1212 | }, |
| 1213 | optimizeDeps ?? {}, |
| 1214 | ) |
| 1215 | setupRollupOptionCompat(merged, 'optimizeDeps') |
| 1216 | |
| 1217 | const rolldownOptions = merged.rolldownOptions as Exclude< |
| 1218 | DepOptimizationOptions['rolldownOptions'], |
| 1219 | undefined |
| 1220 | > |
| 1221 | |
| 1222 | if (merged.esbuildOptions && Object.keys(merged.esbuildOptions).length > 0) { |
| 1223 | logger.warn( |
| 1224 | colors.yellow( |
| 1225 | `You or a plugin you are using have set \`optimizeDeps.esbuildOptions\` ` + |
| 1226 | `but this option is now deprecated. ` + |
| 1227 | `Vite now uses Rolldown to optimize the dependencies. ` + |
| 1228 | `Please use \`optimizeDeps.rolldownOptions\` instead.`, |
| 1229 | ), |
| 1230 | ) |
| 1231 | |
| 1232 | rolldownOptions.resolve ??= {} |
| 1233 | rolldownOptions.output ??= {} |
| 1234 | rolldownOptions.transform ??= {} |
| 1235 | |
| 1236 | const setResolveOptions = < |
| 1237 | T extends keyof Exclude<RolldownOptions['resolve'], undefined>, |
| 1238 | >( |
| 1239 | key: T, |
| 1240 | value: Exclude<RolldownOptions['resolve'], undefined>[T], |
| 1241 | ) => { |
| 1242 | if (value !== undefined && rolldownOptions.resolve![key] === undefined) { |
| 1243 | rolldownOptions.resolve![key] = value |
| 1244 | } |
| 1245 | } |
| 1246 | |
| 1247 | if ( |
| 1248 | merged.esbuildOptions.minify !== undefined && |
| 1249 | rolldownOptions.output.minify === undefined |
| 1250 | ) { |
no test coverage detected