Home / Function/ resolveEsbuildTranspileOptions() — vite Function Reference

resolveEsbuildTranspileOptions() — vite Function Reference

Architecture documentation for the resolveEsbuildTranspileOptions() function in esbuild.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  03745bf8_5bb3_30a3_36e5_c9422e7c13e7["resolveEsbuildTranspileOptions()"]
  926e3b98_b813_2ff8_abb3_16447ab95544["esbuild.ts"]
  03745bf8_5bb3_30a3_36e5_c9422e7c13e7 -->|defined in| 926e3b98_b813_2ff8_abb3_16447ab95544
  58657749_bb5a_f054_a7a7_21e9351ab0f7["buildEsbuildPlugin()"]
  58657749_bb5a_f054_a7a7_21e9351ab0f7 -->|calls| 03745bf8_5bb3_30a3_36e5_c9422e7c13e7
  style 03745bf8_5bb3_30a3_36e5_c9422e7c13e7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/plugins/esbuild.ts lines 429–515

export function resolveEsbuildTranspileOptions(
  config: ResolvedConfig,
  format: InternalModuleFormat,
): EsbuildTransformOptions | null {
  const target = config.build.target
  const minify = config.build.minify === 'esbuild'

  if ((!target || target === 'esnext') && !minify) {
    return null
  }

  // Do not minify whitespace for ES lib output since that would remove
  // pure annotations and break tree-shaking
  // https://github.com/vuejs/core/issues/2860#issuecomment-926882793
  const isEsLibBuild = config.build.lib && format === 'es'
  const esbuildOptions = config.esbuild || {}

  const options: EsbuildTransformOptions = {
    ...esbuildOptions,
    loader: 'js',
    target: target || undefined,
    format: rollupToEsbuildFormatMap[format],
    supported: {
      ...defaultEsbuildSupported,
      ...esbuildOptions.supported,
    },
  }

  // If no minify, disable all minify options
  if (!minify) {
    return {
      ...options,
      minify: false,
      minifyIdentifiers: false,
      minifySyntax: false,
      minifyWhitespace: false,
      treeShaking: false,
    }
  }

  // If user enable fine-grain minify options, minify with their options instead
  if (
    options.minifyIdentifiers != null ||
    options.minifySyntax != null ||
    options.minifyWhitespace != null
  ) {
    if (isEsLibBuild) {
      // Disable minify whitespace as it breaks tree-shaking
      return {
        ...options,
        minify: false,
        minifyIdentifiers: options.minifyIdentifiers ?? true,
        minifySyntax: options.minifySyntax ?? true,
        minifyWhitespace: false,
        treeShaking: true,
      }
    } else {
      return {
        ...options,
        minify: false,
        minifyIdentifiers: options.minifyIdentifiers ?? true,
        minifySyntax: options.minifySyntax ?? true,
        minifyWhitespace: options.minifyWhitespace ?? true,
        treeShaking: true,
      }
    }
  }

  // Else apply default minify options
  if (isEsLibBuild) {
    // Minify all except whitespace as it breaks tree-shaking
    return {
      ...options,
      minify: false,
      minifyIdentifiers: true,
      minifySyntax: true,
      minifyWhitespace: false,
      treeShaking: true,
    }
  } else {
    return {

Domain

Subdomains

Frequently Asked Questions

What does resolveEsbuildTranspileOptions() do?
resolveEsbuildTranspileOptions() is a function in the vite codebase, defined in packages/vite/src/node/plugins/esbuild.ts.
Where is resolveEsbuildTranspileOptions() defined?
resolveEsbuildTranspileOptions() is defined in packages/vite/src/node/plugins/esbuild.ts at line 429.
What calls resolveEsbuildTranspileOptions()?
resolveEsbuildTranspileOptions() is called by 1 function(s): buildEsbuildPlugin.

Analyze Your Own Codebase

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

Try Supermodel Free