assetImportMetaUrl.ts — vite Source File
Architecture documentation for assetImportMetaUrl.ts, a typescript file in the vite codebase. 27 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da["assetImportMetaUrl.ts"] 5abb8c87_ffcb_f2d4_7421_e36705d9e5c7["plugin.ts"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> 5abb8c87_ffcb_f2d4_7421_e36705d9e5c7 1dc2cf7d_5d97_c778_8c33_6449a7607aef["Plugin"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> 1dc2cf7d_5d97_c778_8c33_6449a7607aef 7da774f9_eca5_d54e_6e01_6bee7d460a2b["config.ts"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> 7da774f9_eca5_d54e_6e01_6bee7d460a2b eb5604c2_58e1_1c00_5a1a_5d97ea5236ad["ResolvedConfig"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> eb5604c2_58e1_1c00_5a1a_5d97ea5236ad 031bc221_67a8_c579_f2bf_bb30a08beeb2["utils.ts"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> 031bc221_67a8_c579_f2bf_bb30a08beeb2 1948f092_e5a5_076b_2f59_79ef22dec191["injectQuery"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> 1948f092_e5a5_076b_2f59_79ef22dec191 298b86d6_4810_9884_d5fa_3e3077e2206a["isDataUrl"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> 298b86d6_4810_9884_d5fa_3e3077e2206a d9d49dad_960b_4712_7c44_9345473c62e5["isParentDirectory"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> d9d49dad_960b_4712_7c44_9345473c62e5 6841c80c_8127_d8ce_ac5d_bb48de9eee42["transformStableResult"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> 6841c80c_8127_d8ce_ac5d_bb48de9eee42 a9bd45ce_8339_2b77_7543_41c306ebdb02["tryStatSync"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> a9bd45ce_8339_2b77_7543_41c306ebdb02 545df65b_7f67_94d3_e2e8_a592d5e64b8f["constants.ts"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> 545df65b_7f67_94d3_e2e8_a592d5e64b8f abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64 f094d39d_cd97_2548_86c3_38902c2f3301["slash"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> f094d39d_cd97_2548_86c3_38902c2f3301 55b2a3d2_8787_d760_1a76_1d2854a39807["idResolver.ts"] 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da --> 55b2a3d2_8787_d760_1a76_1d2854a39807 style 08724e3d_5bec_d6ae_9e92_c1e2fe8f89da fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import path from 'node:path'
import MagicString from 'magic-string'
import { stripLiteral } from 'strip-literal'
import { exactRegex } from 'rolldown/filter'
import type { Plugin } from '../plugin'
import type { ResolvedConfig } from '../config'
import {
injectQuery,
isDataUrl,
isParentDirectory,
transformStableResult,
tryStatSync,
} from '../utils'
import { CLIENT_ENTRY } from '../constants'
import { slash } from '../../shared/utils'
import { createBackCompatIdResolver } from '../idResolver'
import type { ResolveIdFn } from '../idResolver'
import { fileToUrl } from './asset'
import { preloadHelperId } from './importAnalysisBuild'
import type { InternalResolveOptions } from './resolve'
import { tryFsResolve } from './resolve'
import { hasViteIgnoreRE } from './importAnalysis'
/**
* Convert `new URL('./foo.png', import.meta.url)` to its resolved built URL
*
* Supports template string with dynamic segments:
* ```
* new URL(`./dir/${name}.png`, import.meta.url)
* // transformed to
* import.meta.glob('./dir/**.png', { eager: true, import: 'default' })[`./dir/${name}.png`]
* ```
*/
export function assetImportMetaUrlPlugin(config: ResolvedConfig): Plugin {
const { publicDir } = config
let assetResolver: ResolveIdFn
const fsResolveOptions: InternalResolveOptions = {
...config.resolve,
root: config.root,
isProduction: config.isProduction,
isBuild: config.command === 'build',
packageCache: config.packageCache,
asSrc: true,
}
return {
name: 'vite:asset-import-meta-url',
applyToEnvironment(environment) {
return environment.config.consumer === 'client'
},
transform: {
filter: {
id: {
exclude: [exactRegex(preloadHelperId), exactRegex(CLIENT_ENTRY)],
},
code: /new\s+URL.+import\.meta\.url/s,
},
// ... (150 more lines)
Domain
Subdomains
Dependencies
- InternalResolveOptions
- Plugin
- ResolveIdFn
- ResolvedConfig
- asset.ts
- config.ts
- constants.ts
- createBackCompatIdResolver
- fileToUrl
- filter
- idResolver.ts
- importAnalysis.ts
- importAnalysisBuild.ts
- injectQuery
- isDataUrl
- isParentDirectory
- magic-string
- node:path
- plugin.ts
- resolve.ts
- slash
- strip-literal
- transformStableResult
- tryFsResolve
- tryStatSync
- utils.ts
- utils.ts
Imported By
Source
Frequently Asked Questions
What does assetImportMetaUrl.ts do?
assetImportMetaUrl.ts is a source file in the vite codebase, written in typescript. It belongs to the PluginSystem domain, AssetManagement subdomain.
What functions are defined in assetImportMetaUrl.ts?
assetImportMetaUrl.ts defines 3 function(s): assetImportMetaUrlPlugin, buildGlobPattern, getQueryDelimiterIndex.
What does assetImportMetaUrl.ts depend on?
assetImportMetaUrl.ts imports 27 module(s): InternalResolveOptions, Plugin, ResolveIdFn, ResolvedConfig, asset.ts, config.ts, constants.ts, createBackCompatIdResolver, and 19 more.
What files import assetImportMetaUrl.ts?
assetImportMetaUrl.ts is imported by 2 file(s): assetImportMetaUrl.spec.ts, index.ts.
Where is assetImportMetaUrl.ts in the architecture?
assetImportMetaUrl.ts is located at packages/vite/src/node/plugins/assetImportMetaUrl.ts (domain: PluginSystem, subdomain: AssetManagement, directory: packages/vite/src/node/plugins).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free