MCPcopy
hub / github.com/vitejs/vite / oxcResolvePlugin

Function oxcResolvePlugin

packages/vite/src/node/plugins/resolve.ts:223–387  ·  view source on GitHub ↗
(
  resolveOptions: ResolvePluginOptionsWithOverrides,
  overrideEnvConfig: (ResolvedConfig & ResolvedEnvironmentOptions) | undefined,
  isJsPluginContainer = false,
)

Source from the content-addressed store, hash-verified

221}
222
223export 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,

Callers 2

resolveFunction · 0.90
resolvePluginsFunction · 0.90

Calls 9

isOptimizableFunction · 0.90
cleanUrlFunction · 0.90
isInNodeModulesFunction · 0.90
injectQueryFunction · 0.90
optimizerResolvePluginFunction · 0.85
getDepsOptimizerFunction · 0.85
ensureVersionQueryFunction · 0.85

Tested by

no test coverage detected