Home / Function/ esbuildPlugin() — vite Function Reference

esbuildPlugin() — vite Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  2c458bfa_10fc_ba71_1db1_819ac600e615["esbuildPlugin()"]
  926e3b98_b813_2ff8_abb3_16447ab95544["esbuild.ts"]
  2c458bfa_10fc_ba71_1db1_819ac600e615 -->|defined in| 926e3b98_b813_2ff8_abb3_16447ab95544
  10b9dea8_362c_1af2_93be_afa4dd9aed9e["cleanUrl()"]
  2c458bfa_10fc_ba71_1db1_819ac600e615 -->|calls| 10b9dea8_362c_1af2_93be_afa4dd9aed9e
  bf4a41be_9dbf_35be_2072_4283cd478ae7["transformWithEsbuild()"]
  2c458bfa_10fc_ba71_1db1_819ac600e615 -->|calls| bf4a41be_9dbf_35be_2072_4283cd478ae7
  b8ca3f28_b158_ad31_7286_a8412bc7e4cd["prettifyMessage()"]
  2c458bfa_10fc_ba71_1db1_819ac600e615 -->|calls| b8ca3f28_b158_ad31_7286_a8412bc7e4cd
  style 2c458bfa_10fc_ba71_1db1_819ac600e615 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/plugins/esbuild.ts lines 280–339

export function esbuildPlugin(config: ResolvedConfig): Plugin {
  const options = config.esbuild as ESBuildOptions
  const { jsxInject, include, exclude, ...esbuildTransformOptions } = options

  const filter = createFilter(include || /\.(m?ts|[jt]sx)$/, exclude || /\.js$/)

  // Remove optimization options for dev as we only need to transpile them,
  // and for build as the final optimization is in `buildEsbuildPlugin`
  const transformOptions: EsbuildTransformOptions = {
    target: 'esnext',
    ...esbuildTransformOptions,
    minify: false,
    minifyIdentifiers: false,
    minifySyntax: false,
    minifyWhitespace: false,
    treeShaking: false,
    // keepNames is not needed when minify is disabled.
    // Also transforming multiple times with keepNames enabled breaks
    // tree-shaking. (#9164)
    keepNames: false,
    supported: {
      ...defaultEsbuildSupported,
      ...esbuildTransformOptions.supported,
    },
  }

  let server: ViteDevServer | undefined

  return {
    name: 'vite:esbuild',
    configureServer(_server) {
      server = _server
    },
    async transform(code, id) {
      if (filter(id) || filter(cleanUrl(id))) {
        const result = await transformWithEsbuild(
          code,
          id,
          transformOptions,
          undefined,
          config,
          server?.watcher,
        )
        if (result.warnings.length) {
          result.warnings.forEach((m) => {
            this.warn(prettifyMessage(m, code))
          })
        }
        if (jsxInject && jsxExtensionsRE.test(id)) {
          result.code = jsxInject + ';' + result.code
        }
        return {
          code: result.code,
          map: result.map,
          moduleType: 'js',
        }
      }
    },
  }
}

Domain

Subdomains

Frequently Asked Questions

What does esbuildPlugin() do?
esbuildPlugin() is a function in the vite codebase, defined in packages/vite/src/node/plugins/esbuild.ts.
Where is esbuildPlugin() defined?
esbuildPlugin() is defined in packages/vite/src/node/plugins/esbuild.ts at line 280.
What does esbuildPlugin() call?
esbuildPlugin() calls 3 function(s): cleanUrl, prettifyMessage, transformWithEsbuild.

Analyze Your Own Codebase

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

Try Supermodel Free