Home / File/ vite.config.ts — vite Source File

vite.config.ts — vite Source File

Architecture documentation for vite.config.ts, a typescript file in the vite codebase. 1 imports, 0 dependents.

File typescript ViteCore ConfigEngine 1 imports 5 functions

Entity Profile

Dependency Diagram

graph LR
  9c394fd4_d931_13e7_dc9e_b86ce6865992["vite.config.ts"]
  54c37fea_4fe7_2693_71cb_1276b77f55f9["vite"]
  9c394fd4_d931_13e7_dc9e_b86ce6865992 --> 54c37fea_4fe7_2693_71cb_1276b77f55f9
  style 9c394fd4_d931_13e7_dc9e_b86ce6865992 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { type Plugin, defineConfig } from 'vite'

export default defineConfig({
  experimental: {
    bundledDev: true,
  },
  plugins: [waitBundleCompleteUntilAccess(), delayTransformComment()],
})

function waitBundleCompleteUntilAccess(): Plugin {
  let resolvers: PromiseWithResolvers<void>

  return {
    name: 'wait-bundle-complete-until-access',
    apply: 'serve',
    configureServer(server) {
      let accessCount = 0
      resolvers = promiseWithResolvers()

      server.middlewares.use((_req, _res, next) => {
        accessCount++
        if (accessCount === 1) {
          resolvers.resolve()
        }
        next()
      })
    },
    async generateBundle() {
      await resolvers.promise
      await new Promise<void>((resolve) => setTimeout(resolve, 300))
    },
  }
}

function delayTransformComment(): Plugin {
  return {
    name: 'delay-transform-comment',
    async transform(code) {
      if (code.includes('// @delay-transform')) {
        await new Promise<void>((resolve) => setTimeout(resolve, 300))
      }
    },
  }
}

interface PromiseWithResolvers<T> {
  promise: Promise<T>
  resolve: (value: T | PromiseLike<T>) => void
  reject: (reason?: any) => void
}
function promiseWithResolvers<T>(): PromiseWithResolvers<T> {
  let resolve: any
  let reject: any
  const promise = new Promise<T>((_resolve, _reject) => {
    resolve = _resolve
    reject = _reject
  })
  return { promise, resolve, reject }
}

Domain

Subdomains

Dependencies

  • vite

Frequently Asked Questions

What does vite.config.ts do?
vite.config.ts is a source file in the vite codebase, written in typescript. It belongs to the ViteCore domain, ConfigEngine subdomain.
What functions are defined in vite.config.ts?
vite.config.ts defines 5 function(s): delayTransformComment, promiseWithResolvers, reason, value, waitBundleCompleteUntilAccess.
What does vite.config.ts depend on?
vite.config.ts imports 1 module(s): vite.
Where is vite.config.ts in the architecture?
vite.config.ts is located at playground/hmr-full-bundle-mode/vite.config.ts (domain: ViteCore, subdomain: ConfigEngine, directory: playground/hmr-full-bundle-mode).

Analyze Your Own Codebase

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

Try Supermodel Free