( resolveOptions: ResolvePluginOptionsWithOverrides, overrideEnvConfig: (ResolvedConfig & ResolvedEnvironmentOptions) | undefined, isJsPluginContainer = false, )
| 221 | } |
| 222 | |
| 223 | export function oxcResolvePlugin( |
| 224 | resolveOptions: ResolvePluginOptionsWithOverrides, |
| 225 | overrideEnvConfig: (ResolvedConfig & ResolvedEnvironmentOptions) | undefined, |
| 226 | isJsPluginContainer = false, |
| 227 | ): Plugin[] { |
| 228 | return [ |
| 229 | ...(resolveOptions.optimizeDeps && !resolveOptions.isBuild |
| 230 | ? [optimizerResolvePlugin(resolveOptions)] |
| 231 | : []), |
| 232 | ...perEnvironmentOrWorkerPlugin( |
| 233 | 'vite:resolve-builtin', |
| 234 | overrideEnvConfig, |
| 235 | (partialEnv, getEnv) => { |
| 236 | // The resolve plugin is used for createIdResolver and the depsOptimizer should be |
| 237 | // disabled in that case, so deps optimization is opt-in when creating the plugin. |
| 238 | const depsOptimizerEnabled = |
| 239 | resolveOptions.optimizeDeps && |
| 240 | !resolveOptions.isBuild && |
| 241 | !partialEnv.config.isBundled && |
| 242 | !isDepOptimizationDisabled(partialEnv.config.optimizeDeps) |
| 243 | const getDepsOptimizer = () => { |
| 244 | const env = getEnv() |
| 245 | if (env.mode !== 'dev') |
| 246 | throw new Error('The environment mode should be dev') |
| 247 | if (!env.depsOptimizer) |
| 248 | throw new Error('The environment should have a depsOptimizer') |
| 249 | return env.depsOptimizer |
| 250 | } |
| 251 | |
| 252 | const options: InternalResolveOptions = { |
| 253 | ...partialEnv.config.resolve, |
| 254 | ...resolveOptions, // plugin options + resolve options overrides |
| 255 | } |
| 256 | const noExternal = |
| 257 | Array.isArray(options.noExternal) || options.noExternal === true |
| 258 | ? options.noExternal |
| 259 | : [options.noExternal] |
| 260 | |
| 261 | const plugin = viteResolvePlugin({ |
| 262 | resolveOptions: { |
| 263 | isBuild: options.isBuild, |
| 264 | isProduction: options.isProduction, |
| 265 | asSrc: options.asSrc ?? false, |
| 266 | preferRelative: options.preferRelative ?? false, |
| 267 | isRequire: options.isRequire, |
| 268 | root: options.root, |
| 269 | scan: options.scan ?? false, |
| 270 | |
| 271 | mainFields: options.skipMainField |
| 272 | ? options.mainFields |
| 273 | : options.mainFields.concat(['main']), |
| 274 | conditions: options.conditions, |
| 275 | externalConditions: options.externalConditions, |
| 276 | extensions: options.extensions, |
| 277 | tryIndex: options.tryIndex ?? true, |
| 278 | tryPrefix: options.tryPrefix, |
| 279 | preserveSymlinks: options.preserveSymlinks, |
| 280 | tsconfigPaths: options.tsconfigPaths, |
no test coverage detected