Home / Function/ dynamicImportVarsPlugin() — vite Function Reference

dynamicImportVarsPlugin() — vite Function Reference

Architecture documentation for the dynamicImportVarsPlugin() function in dynamicImportVars.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  c10ddb4f_144e_78b3_e0f7_d70979a75e3a["dynamicImportVarsPlugin()"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1["dynamicImportVars.ts"]
  c10ddb4f_144e_78b3_e0f7_d70979a75e3a -->|defined in| e962fae7_53df_5265_a6c6_b9cfe28d06e1
  b1b40b5b_3e43_2197_dea0_d36389d312a1["resolvePlugins()"]
  b1b40b5b_3e43_2197_dea0_d36389d312a1 -->|calls| c10ddb4f_144e_78b3_e0f7_d70979a75e3a
  7ee86c21_2650_c869_2f5d_720909757e00["createBackCompatIdResolver()"]
  c10ddb4f_144e_78b3_e0f7_d70979a75e3a -->|calls| 7ee86c21_2650_c869_2f5d_720909757e00
  dfa3f5a8_b519_cb65_4b7e_9d4824406fd4["perEnvironmentPlugin()"]
  c10ddb4f_144e_78b3_e0f7_d70979a75e3a -->|calls| dfa3f5a8_b519_cb65_4b7e_9d4824406fd4
  16a00926_f0e9_60f1_3006_9132a6d78745["perEnvironmentState()"]
  c10ddb4f_144e_78b3_e0f7_d70979a75e3a -->|calls| 16a00926_f0e9_60f1_3006_9132a6d78745
  c8ee919d_d03e_b4e1_7f6d_c4e274847312["transformDynamicImport()"]
  c10ddb4f_144e_78b3_e0f7_d70979a75e3a -->|calls| c8ee919d_d03e_b4e1_7f6d_c4e274847312
  6841c80c_8127_d8ce_ac5d_bb48de9eee42["transformStableResult()"]
  c10ddb4f_144e_78b3_e0f7_d70979a75e3a -->|calls| 6841c80c_8127_d8ce_ac5d_bb48de9eee42
  style c10ddb4f_144e_78b3_e0f7_d70979a75e3a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/plugins/dynamicImportVars.ts lines 169–298

export function dynamicImportVarsPlugin(config: ResolvedConfig): Plugin {
  const resolve = createBackCompatIdResolver(config, {
    preferRelative: true,
    tryIndex: false,
    extensions: [],
  })

  if (config.isBundled && config.nativePluginEnabledLevel >= 1) {
    return perEnvironmentPlugin('native:dynamic-import-vars', (environment) => {
      const { include, exclude } =
        environment.config.build.dynamicImportVarsOptions

      return nativeDynamicImportVarsPlugin({
        include,
        exclude,
        resolver(id, importer) {
          return resolve(environment, id, importer)
        },
        sourcemap: !!environment.config.build.sourcemap,
      })
    })
  }

  const getFilter = perEnvironmentState((environment: Environment) => {
    const { include, exclude } =
      environment.config.build.dynamicImportVarsOptions
    return createFilter(include, exclude)
  })

  return {
    name: 'vite:dynamic-import-vars',

    resolveId: {
      filter: { id: exactRegex(dynamicImportHelperId) },
      handler(id) {
        return id
      },
    },

    load: {
      filter: { id: exactRegex(dynamicImportHelperId) },
      handler(_id) {
        return `export default ${dynamicImportHelper.toString()}`
      },
    },

    transform: {
      filter: {
        id: { exclude: exactRegex(CLIENT_ENTRY) },
        code: hasDynamicImportRE,
      },
      async handler(source, importer) {
        const { environment } = this
        if (!getFilter(this)(importer)) {
          return
        }

        await init

        let imports: readonly ImportSpecifier[] = []
        try {
          imports = parseImports(source)[0]
        } catch {
          // ignore as it might not be a JS file, the subsequent plugins will catch the error
          return null
        }

        if (!imports.length) {
          return null
        }

        let s: MagicString | undefined
        let needDynamicImportHelper = false

        for (let index = 0; index < imports.length; index++) {
          const {
            s: start,
            e: end,
            ss: expStart,
            se: expEnd,
            d: dynamicIndex,

Domain

Subdomains

Called By

Frequently Asked Questions

What does dynamicImportVarsPlugin() do?
dynamicImportVarsPlugin() is a function in the vite codebase, defined in packages/vite/src/node/plugins/dynamicImportVars.ts.
Where is dynamicImportVarsPlugin() defined?
dynamicImportVarsPlugin() is defined in packages/vite/src/node/plugins/dynamicImportVars.ts at line 169.
What does dynamicImportVarsPlugin() call?
dynamicImportVarsPlugin() calls 5 function(s): createBackCompatIdResolver, perEnvironmentPlugin, perEnvironmentState, transformDynamicImport, transformStableResult.
What calls dynamicImportVarsPlugin()?
dynamicImportVarsPlugin() is called by 1 function(s): resolvePlugins.

Analyze Your Own Codebase

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

Try Supermodel Free