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 3 functions

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

import { defineConfig } from 'vite'
import type { Plugin } from 'vite'

export default defineConfig({
  experimental: {
    hmrPartialAccept: true,
  },
  build: {
    assetsInlineLimit(filePath) {
      if (filePath.endsWith('logo-no-inline.svg')) {
        return false
      }
    },
  },
  plugins: [
    {
      name: 'mock-custom',
      async hotUpdate({ file, read, server }) {
        if (file.endsWith('customFile.js')) {
          const content = await read()
          const msg = content.match(/export const msg = '(\w+)'/)[1]
          this.environment.hot.send('custom:foo', { msg })
          this.environment.hot.send('custom:remove', { msg })
        }
      },
      configureServer(server) {
        server.environments.ssr.hot.on(
          'custom:remote-add',
          ({ a, b }, client) => {
            client.send('custom:remote-add-result', { result: a + b })
          },
        )
      },
    },
    virtualPlugin(),
    transformCountPlugin(),
    queryPlugin(),
  ],
})

function virtualPlugin(): Plugin {
  let num = 0
  return {
    name: 'virtual-file',
    resolveId(id, importer) {
      if (id === 'virtual:file' || id === '\0virtual:file') {
        return '\0virtual:file'
      }
    },
    load(id) {
      if (id === '\0virtual:file') {
        return `\
import { virtual as _virtual } from "/importedVirtual.js";
export const virtual = _virtual + '${num}';`
      }
    },
    configureServer(server) {
      server.environments.ssr.hot.on('virtual:increment', async () => {
        const mod =
          await server.environments.ssr.moduleGraph.getModuleByUrl(
            '\0virtual:file',
          )
        if (mod) {
          num++
          server.environments.ssr.reloadModule(mod)
        }
      })
    },
  }
}

function queryPlugin(): Plugin {
  return {
    name: 'query-resolver',
    transform(code, id) {
      if (id.includes('?query1')) {
        return `export default ${JSON.stringify(code + 'query1')}`
      }

      if (id.includes('?query2')) {
        return `export default ${JSON.stringify(code + 'query2')}`
      }
    },
  }
}

function transformCountPlugin(): Plugin {
  let num = 0
  return {
    name: 'transform-count',
    transform(code) {
      if (code.includes('__TRANSFORM_COUNT__')) {
        return code.replace('__TRANSFORM_COUNT__', String(++num))
      }
    },
  }
}

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 3 function(s): queryPlugin, transformCountPlugin, virtualPlugin.
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-ssr/vite.config.ts (domain: ViteCore, subdomain: ConfigEngine, directory: playground/hmr-ssr).

Analyze Your Own Codebase

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

Try Supermodel Free