Home / Function/ makeLessWorker() — vite Function Reference

makeLessWorker() — vite Function Reference

Architecture documentation for the makeLessWorker() function in css.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  f4aa02c2_8aea_ce8b_ef25_c65bac13369a["makeLessWorker()"]
  c3eb47df_971b_0616_6c9f_29b3ded72224["css.ts"]
  f4aa02c2_8aea_ce8b_ef25_c65bac13369a -->|defined in| c3eb47df_971b_0616_6c9f_29b3ded72224
  b115d8d2_4bdd_4a69_c76d_1789ff11d443["lessProcessor()"]
  b115d8d2_4bdd_4a69_c76d_1789ff11d443 -->|calls| f4aa02c2_8aea_ce8b_ef25_c65bac13369a
  f9a13b61_758d_6973_4d25_637ddaa2a22f["url()"]
  f4aa02c2_8aea_ce8b_ef25_c65bac13369a -->|calls| f9a13b61_758d_6973_4d25_637ddaa2a22f
  dfa2b928_25a4_a78f_1e11_1e7e643cae09["resolve()"]
  f4aa02c2_8aea_ce8b_ef25_c65bac13369a -->|calls| dfa2b928_25a4_a78f_1e11_1e7e643cae09
  5b519ec5_dd2f_e06c_4b7f_2007d9f5d884["rebaseUrls()"]
  f4aa02c2_8aea_ce8b_ef25_c65bac13369a -->|calls| 5b519ec5_dd2f_e06c_4b7f_2007d9f5d884
  style f4aa02c2_8aea_ce8b_ef25_c65bac13369a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/plugins/css.ts lines 2751–2896

const makeLessWorker = (
  environment: PartialEnvironment,
  resolvers: CSSAtImportResolvers,
  maxWorkers: number | undefined,
) => {
  const skipRebaseUrls = (unquotedUrl: string, _rawUrl: string) => {
    // matches both
    // - interpolation: `url('@{foo}')`
    // - variable: `url(@foo)`
    return unquotedUrl[0] === '@'
  }

  const viteLessResolve = async (
    filename: string,
    dir: string,
    rootFile: string,
    mime: string | undefined,
  ) => {
    const resolved = await resolvers.less(
      environment,
      filename,
      path.join(dir, '*'),
    )
    if (!resolved) return undefined

    // don't rebase URLs in JavaScript plugins
    if (mime === 'application/javascript') {
      const file = path.resolve(resolved) // ensure os-specific flashes
      return { resolved: file }
    }

    const result = await rebaseUrls(
      environment,
      resolved,
      rootFile,
      resolvers.less,
      skipRebaseUrls,
    )
    return {
      resolved,
      contents: 'contents' in result ? result.contents : undefined,
    }
  }

  const worker = new WorkerWithFallback(
    async () => {
      const [fsp, path] = await Promise.all([
        import('node:fs/promises'),
        import('node:path'),
      ])

      let ViteLessManager: any
      const createViteLessPlugin = (
        less: typeof Less,
        rootFile: string,
      ): Less.Plugin => {
        const { FileManager } = less
        ViteLessManager ??= class ViteManager extends FileManager {
          rootFile
          constructor(rootFile: string) {
            super()
            this.rootFile = rootFile
          }
          override supports(filename: string) {
            return !/^(?:https?:)?\/\//.test(filename)
          }
          override supportsSync() {
            return false
          }
          override async loadFile(
            filename: string,
            dir: string,
            opts: any,
            env: any,
          ): Promise<Less.FileLoadResult> {
            const result = await viteLessResolve(
              filename,
              dir,
              this.rootFile,
              opts.mime,
            )

Domain

Subdomains

Called By

Frequently Asked Questions

What does makeLessWorker() do?
makeLessWorker() is a function in the vite codebase, defined in packages/vite/src/node/plugins/css.ts.
Where is makeLessWorker() defined?
makeLessWorker() is defined in packages/vite/src/node/plugins/css.ts at line 2751.
What does makeLessWorker() call?
makeLessWorker() calls 3 function(s): rebaseUrls, resolve, url.
What calls makeLessWorker()?
makeLessWorker() is called by 1 function(s): lessProcessor.

Analyze Your Own Codebase

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

Try Supermodel Free