Home / Function/ createDefinePluginTransform() — vite Function Reference

createDefinePluginTransform() — vite Function Reference

Architecture documentation for the createDefinePluginTransform() function in define.spec.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  85e82af4_ced1_f569_fa46_a75344872da0["createDefinePluginTransform()"]
  bf20def2_a431_dfdf_d6e4_85c97827d9ad["define.spec.ts"]
  85e82af4_ced1_f569_fa46_a75344872da0 -->|defined in| bf20def2_a431_dfdf_d6e4_85c97827d9ad
  58c4a210_68fe_1b4d_ed49_d59203f97ef1["resolveConfig()"]
  85e82af4_ced1_f569_fa46_a75344872da0 -->|calls| 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  c9b245c1_add7_9a08_4f17_a6d03ed5e241["definePlugin()"]
  85e82af4_ced1_f569_fa46_a75344872da0 -->|calls| c9b245c1_add7_9a08_4f17_a6d03ed5e241
  style 85e82af4_ced1_f569_fa46_a75344872da0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/__tests__/plugins/define.spec.ts lines 7–59

async function createDefinePluginTransform(
  define: Record<string, any> = {},
  build = true,
  ssr = false,
) {
  const config = await resolveConfig(
    { configFile: false, define },
    build ? 'build' : 'serve',
  )
  const instance = definePlugin(config)
  const environment = new PartialEnvironment(ssr ? 'ssr' : 'client', config)

  return async (code: string) => {
    if (process.env._VITE_TEST_JS_PLUGIN) {
      // @ts-expect-error transform.handler should exist
      const result = await instance.transform.handler.call(
        { environment },
        code,
        'foo.ts',
      )
      return result?.code || result
    } else {
      const bundler = await rolldown({
        input: 'entry.js',
        plugins: [
          {
            name: 'test',
            resolveId(id) {
              if (id === 'entry.js') {
                return '\0' + id
              }
            },
            load(id) {
              if (id === '\0entry.js') {
                return code
              }
            },
          },
          {
            name: 'native:define',
            options: (definePlugin(config).options! as any).bind({
              environment,
            }),
          },
        ],
        experimental: {
          attachDebugInfo: 'none',
        },
      })
      return (await bundler.generate()).output[0].code
    }
  }
}

Domain

Subdomains

Frequently Asked Questions

What does createDefinePluginTransform() do?
createDefinePluginTransform() is a function in the vite codebase, defined in packages/vite/src/node/__tests__/plugins/define.spec.ts.
Where is createDefinePluginTransform() defined?
createDefinePluginTransform() is defined in packages/vite/src/node/__tests__/plugins/define.spec.ts at line 7.
What does createDefinePluginTransform() call?
createDefinePluginTransform() calls 2 function(s): definePlugin, resolveConfig.

Analyze Your Own Codebase

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

Try Supermodel Free