Home / Function/ oxcResolvePlugin() — vite Function Reference

oxcResolvePlugin() — vite Function Reference

Architecture documentation for the oxcResolvePlugin() function in resolve.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba["oxcResolvePlugin()"]
  dcff87b0_a8ea_57a2_3b29_a7b8f19986f3["resolve.ts"]
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba -->|defined in| dcff87b0_a8ea_57a2_3b29_a7b8f19986f3
  ad008126_fbbe_c1e5_bb1b_3d9b84539e52["createIdResolver()"]
  ad008126_fbbe_c1e5_bb1b_3d9b84539e52 -->|calls| 0ac6860f_bc2f_9818_86d4_22179cc9c8ba
  b1b40b5b_3e43_2197_dea0_d36389d312a1["resolvePlugins()"]
  b1b40b5b_3e43_2197_dea0_d36389d312a1 -->|calls| 0ac6860f_bc2f_9818_86d4_22179cc9c8ba
  7afe7894_efd7_32c4_3b59_4a2cdc5ba6a2["optimizerResolvePlugin()"]
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba -->|calls| 7afe7894_efd7_32c4_3b59_4a2cdc5ba6a2
  5884032b_dafc_4317_ee11_1cfd5feff2ba["perEnvironmentOrWorkerPlugin()"]
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba -->|calls| 5884032b_dafc_4317_ee11_1cfd5feff2ba
  cf8cccc0_fa2a_e8ac_480a_47c54435825c["isDepOptimizationDisabled()"]
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba -->|calls| cf8cccc0_fa2a_e8ac_480a_47c54435825c
  908e9e35_950f_ad37_ffa9_0058622aa7e8["isOptimizable()"]
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba -->|calls| 908e9e35_950f_ad37_ffa9_0058622aa7e8
  10b9dea8_362c_1af2_93be_afa4dd9aed9e["cleanUrl()"]
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba -->|calls| 10b9dea8_362c_1af2_93be_afa4dd9aed9e
  50ac7e51_9f94_e985_bfec_ae95273b23b0["isInNodeModules()"]
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba -->|calls| 50ac7e51_9f94_e985_bfec_ae95273b23b0
  1948f092_e5a5_076b_2f59_79ef22dec191["injectQuery()"]
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba -->|calls| 1948f092_e5a5_076b_2f59_79ef22dec191
  943b70a3_1c84_7955_97b8_7f6e05f2f986["ensureVersionQuery()"]
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba -->|calls| 943b70a3_1c84_7955_97b8_7f6e05f2f986
  3565bb57_e3d1_ed21_b20a_81fa198f92df["resolveSubpathImports()"]
  0ac6860f_bc2f_9818_86d4_22179cc9c8ba -->|calls| 3565bb57_e3d1_ed21_b20a_81fa198f92df
  style 0ac6860f_bc2f_9818_86d4_22179cc9c8ba fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/plugins/resolve.ts lines 224–385

export function oxcResolvePlugin(
  resolveOptions: ResolvePluginOptionsWithOverrides,
  overrideEnvConfig: (ResolvedConfig & ResolvedEnvironmentOptions) | undefined,
): Plugin[] {
  return [
    ...(resolveOptions.optimizeDeps && !resolveOptions.isBuild
      ? [optimizerResolvePlugin(resolveOptions)]
      : []),
    ...perEnvironmentOrWorkerPlugin(
      'vite:resolve-builtin',
      overrideEnvConfig,
      (partialEnv, getEnv) => {
        // The resolve plugin is used for createIdResolver and the depsOptimizer should be
        // disabled in that case, so deps optimization is opt-in when creating the plugin.
        const depsOptimizerEnabled =
          resolveOptions.optimizeDeps &&
          !resolveOptions.isBuild &&
          !partialEnv.config.experimental.bundledDev &&
          !isDepOptimizationDisabled(partialEnv.config.optimizeDeps)
        const getDepsOptimizer = () => {
          const env = getEnv()
          if (env.mode !== 'dev')
            throw new Error('The environment mode should be dev')
          if (!env.depsOptimizer)
            throw new Error('The environment should have a depsOptimizer')
          return env.depsOptimizer
        }

        const options: InternalResolveOptions = {
          ...partialEnv.config.resolve,
          ...resolveOptions, // plugin options + resolve options overrides
        }
        const noExternal =
          Array.isArray(options.noExternal) || options.noExternal === true
            ? options.noExternal
            : [options.noExternal]

        const plugin = viteResolvePlugin({
          resolveOptions: {
            isBuild: options.isBuild,
            isProduction: options.isProduction,
            asSrc: options.asSrc ?? false,
            preferRelative: options.preferRelative ?? false,
            isRequire: options.isRequire,
            root: options.root,
            scan: options.scan ?? false,

            mainFields: options.skipMainField
              ? options.mainFields
              : options.mainFields.concat(['main']),
            conditions: options.conditions,
            externalConditions: options.externalConditions,
            extensions: options.extensions,
            tryIndex: options.tryIndex ?? true,
            tryPrefix: options.tryPrefix,
            preserveSymlinks: options.preserveSymlinks,
            tsconfigPaths: options.tsconfigPaths,
          },
          environmentConsumer: partialEnv.config.consumer,
          environmentName: partialEnv.name,
          builtins: partialEnv.config.resolve.builtins,
          external: options.external,
          noExternal: noExternal,
          dedupe: options.dedupe,
          disableCache:
            partialEnv.config.command === 'serve' &&
            // eslint-disable-next-line eqeqeq
            partialEnv.config.server.watch === null,
          legacyInconsistentCjsInterop: options.legacyInconsistentCjsInterop,
          finalizeBareSpecifier: !depsOptimizerEnabled
            ? undefined
            : (resolvedId, rawId, importer) => {
                const depsOptimizer = getDepsOptimizer()
                // if we reach here, it's a valid dep import that hasn't been optimized.
                const isJsType = isOptimizable(
                  resolvedId,
                  depsOptimizer.options,
                )
                const exclude = depsOptimizer?.options.exclude

                // check for deep import, e.g. "my-lib/foo"

Domain

Subdomains

Frequently Asked Questions

What does oxcResolvePlugin() do?
oxcResolvePlugin() is a function in the vite codebase, defined in packages/vite/src/node/plugins/resolve.ts.
Where is oxcResolvePlugin() defined?
oxcResolvePlugin() is defined in packages/vite/src/node/plugins/resolve.ts at line 224.
What does oxcResolvePlugin() call?
oxcResolvePlugin() calls 9 function(s): cleanUrl, ensureVersionQuery, injectQuery, isDepOptimizationDisabled, isInNodeModules, isOptimizable, optimizerResolvePlugin, perEnvironmentOrWorkerPlugin, and 1 more.
What calls oxcResolvePlugin()?
oxcResolvePlugin() is called by 2 function(s): createIdResolver, resolvePlugins.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free