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
Defined In
Called By
Source
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