ESModulesEvaluator Class — vite Architecture
Architecture documentation for the ESModulesEvaluator class in esmEvaluator.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD 691bc863_91cf_722d_7965_18911f33919d["ESModulesEvaluator"] 18923f93_cfa8_2d16_b71c_25bd600b0c6a["esmEvaluator.ts"] 691bc863_91cf_722d_7965_18911f33919d -->|defined in| 18923f93_cfa8_2d16_b71c_25bd600b0c6a b7db8dad_5087_15c0_4295_7bd1de779635["runInlinedModule()"] 691bc863_91cf_722d_7965_18911f33919d -->|method| b7db8dad_5087_15c0_4295_7bd1de779635 c112c314_3799_38c3_1ecc_d56fb8562692["runExternalModule()"] 691bc863_91cf_722d_7965_18911f33919d -->|method| c112c314_3799_38c3_1ecc_d56fb8562692
Relationship Graph
Source Code
packages/vite/src/module-runner/esmEvaluator.ts lines 15–50
export class ESModulesEvaluator implements ModuleEvaluator {
public readonly startOffset: number =
getAsyncFunctionDeclarationPaddingLineCount()
async runInlinedModule(
context: ModuleRunnerContext,
code: string,
): Promise<any> {
// use AsyncFunction instead of vm module to support broader array of environments out of the box
const initModule = new AsyncFunction(
ssrModuleExportsKey,
ssrImportMetaKey,
ssrImportKey,
ssrDynamicImportKey,
ssrExportAllKey,
ssrExportNameKey,
// source map should already be inlined by Vite
'"use strict";' + code,
)
await initModule(
context[ssrModuleExportsKey],
context[ssrImportMetaKey],
context[ssrImportKey],
context[ssrDynamicImportKey],
context[ssrExportAllKey],
context[ssrExportNameKey],
)
Object.seal(context[ssrModuleExportsKey])
}
runExternalModule(filepath: string): Promise<any> {
return import(filepath)
}
}
Domain
Source
Frequently Asked Questions
What is the ESModulesEvaluator class?
ESModulesEvaluator is a class in the vite codebase, defined in packages/vite/src/module-runner/esmEvaluator.ts.
Where is ESModulesEvaluator defined?
ESModulesEvaluator is defined in packages/vite/src/module-runner/esmEvaluator.ts at line 15.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free