Home / Function/ resolveRolldownOptions() — vite Function Reference

resolveRolldownOptions() — vite Function Reference

Architecture documentation for the resolveRolldownOptions() function in build.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52["resolveRolldownOptions()"]
  45981d85_cbdd_e969_8c88_c17072ea0eda["build.ts"]
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 -->|defined in| 45981d85_cbdd_e969_8c88_c17072ea0eda
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0["buildEnvironment()"]
  94ad7f99_b02e_152e_c5a9_749d6de8d3c0 -->|calls| a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52
  e6c19722_5c65_17df_83d9_4bb453d26d5b["getRolldownOptions()"]
  e6c19722_5c65_17df_83d9_4bb453d26d5b -->|calls| a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52
  dfa2b928_25a4_a78f_1e11_1e7e643cae09["resolve()"]
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 -->|calls| dfa2b928_25a4_a78f_1e11_1e7e643cae09
  d7a9e9fe_edc0_c70e_690b_4591b789faca["injectEnvironmentToHooks()"]
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 -->|calls| d7a9e9fe_edc0_c70e_690b_4591b789faca
  5f780e97_091a_dfa9_1506_327f54d41dca["onRollupLog()"]
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 -->|calls| 5f780e97_091a_dfa9_1506_327f54d41dca
  b1f5b07b_f692_69cd_1795_627055928bb7["getTopLevelConfig()"]
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 -->|calls| b1f5b07b_f692_69cd_1795_627055928bb7
  60e05a5b_2625_e45f_63c4_c6eebc6e2d5b["resolveOutputJsExtension()"]
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 -->|calls| 60e05a5b_2625_e45f_63c4_c6eebc6e2d5b
  31b651d6_9d57_14b0_2e8c_d85642bc19f4["findNearestPackageData()"]
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 -->|calls| 31b651d6_9d57_14b0_2e8c_d85642bc19f4
  fef76ea3_a24d_c3ab_a223_9dccb849d65f["resolveLibFilename()"]
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 -->|calls| fef76ea3_a24d_c3ab_a223_9dccb849d65f
  c96008e0_3b87_08ec_3ca8_496b2bf473ab["resolveBuildOutputs()"]
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 -->|calls| c96008e0_3b87_08ec_3ca8_496b2bf473ab
  3cf1d94a_16a2_96d6_7d1d_9757e22a2557["warn()"]
  a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 -->|calls| 3cf1d94a_16a2_96d6_7d1d_9757e22a2557
  style a016fb65_b1f4_be50_c5c3_d0c8f7b2ab52 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/build.ts lines 565–774

export function resolveRolldownOptions(
  environment: Environment,
  chunkMetadataMap: ChunkMetadataMap,
): RolldownOptions {
  const { root, packageCache, build: options } = environment.config
  const libOptions = options.lib
  const { logger } = environment
  const ssr = environment.config.consumer === 'server'

  const resolve = (p: string) => path.resolve(root, p)
  const input = libOptions
    ? options.rollupOptions.input ||
      (typeof libOptions.entry === 'string'
        ? resolve(libOptions.entry)
        : Array.isArray(libOptions.entry)
          ? libOptions.entry.map(resolve)
          : Object.fromEntries(
              Object.entries(libOptions.entry).map(([alias, file]) => [
                alias,
                resolve(file),
              ]),
            ))
    : typeof options.ssr === 'string'
      ? resolve(options.ssr)
      : options.rollupOptions.input || resolve('index.html')

  if (ssr && typeof input === 'string' && input.endsWith('.html')) {
    throw new Error(
      `rollupOptions.input should not be an html file when building for SSR. ` +
        `Please specify a dedicated SSR entry.`,
    )
  }
  if (options.cssCodeSplit === false) {
    const inputs =
      typeof input === 'string'
        ? [input]
        : Array.isArray(input)
          ? input
          : Object.values(input)
    if (inputs.some((input) => input.endsWith('.css'))) {
      throw new Error(
        `When "build.cssCodeSplit: false" is set, "rollupOptions.input" should not include CSS files.`,
      )
    }
  }

  const outDir = resolve(options.outDir)

  // inject environment and ssr arg to plugin load/transform hooks
  const plugins = environment.plugins.map((p) =>
    injectEnvironmentToHooks(environment, chunkMetadataMap, p),
  )

  const rollupOptions: RolldownOptions = {
    preserveEntrySignatures: ssr
      ? 'allow-extension'
      : libOptions
        ? 'strict'
        : false,
    // cache: options.watch ? undefined : false,
    ...options.rollupOptions,
    output: options.rollupOptions.output,
    input,
    plugins,
    external: options.rollupOptions.external,
    onLog(level, log) {
      onRollupLog(level, log, environment)
    },
    transform: {
      target: options.target === false ? undefined : options.target,
      ...options.rollupOptions.transform,
      define: {
        ...options.rollupOptions.transform?.define,
        // disable builtin process.env.NODE_ENV replacement as it is handled by the define plugin
        'process.env.NODE_ENV': 'process.env.NODE_ENV',
      },
    },
    // TODO: remove this and enable rolldown's CSS support later
    moduleTypes: {
      ...options.rollupOptions.moduleTypes,
      '.css': 'js',

Domain

Subdomains

Frequently Asked Questions

What does resolveRolldownOptions() do?
resolveRolldownOptions() is a function in the vite codebase, defined in packages/vite/src/node/build.ts.
Where is resolveRolldownOptions() defined?
resolveRolldownOptions() is defined in packages/vite/src/node/build.ts at line 565.
What does resolveRolldownOptions() call?
resolveRolldownOptions() calls 9 function(s): findNearestPackageData, getTopLevelConfig, injectEnvironmentToHooks, onRollupLog, resolve, resolveBuildOutputs, resolveLibFilename, resolveOutputJsExtension, and 1 more.
What calls resolveRolldownOptions()?
resolveRolldownOptions() is called by 2 function(s): buildEnvironment, getRolldownOptions.

Analyze Your Own Codebase

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

Try Supermodel Free