Home / Function/ lessProcessor() — vite Function Reference

lessProcessor() — vite Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  b115d8d2_4bdd_4a69_c76d_1789ff11d443["lessProcessor()"]
  c3eb47df_971b_0616_6c9f_29b3ded72224["css.ts"]
  b115d8d2_4bdd_4a69_c76d_1789ff11d443 -->|defined in| c3eb47df_971b_0616_6c9f_29b3ded72224
  1da538be_8fb3_3d85_2856_d9bfecfb04f5["createPreprocessorWorkerController()"]
  1da538be_8fb3_3d85_2856_d9bfecfb04f5 -->|calls| b115d8d2_4bdd_4a69_c76d_1789ff11d443
  ee6b4ebe_4e17_548c_a8a5_aafc4db9c675["loadPreprocessorPath()"]
  b115d8d2_4bdd_4a69_c76d_1789ff11d443 -->|calls| ee6b4ebe_4e17_548c_a8a5_aafc4db9c675
  f4aa02c2_8aea_ce8b_ef25_c65bac13369a["makeLessWorker()"]
  b115d8d2_4bdd_4a69_c76d_1789ff11d443 -->|calls| f4aa02c2_8aea_ce8b_ef25_c65bac13369a
  b3a25877_fb4e_e12d_263d_f69173aee25a["getSource()"]
  b115d8d2_4bdd_4a69_c76d_1789ff11d443 -->|calls| b3a25877_fb4e_e12d_263d_f69173aee25a
  2ed2578e_588a_efd0_df6b_829e1a96adf2["parse()"]
  b115d8d2_4bdd_4a69_c76d_1789ff11d443 -->|calls| 2ed2578e_588a_efd0_df6b_829e1a96adf2
  969cb910_e45f_4b10_e707_9ec8d9fcc8d8["close()"]
  b115d8d2_4bdd_4a69_c76d_1789ff11d443 -->|calls| 969cb910_e45f_4b10_e707_9ec8d9fcc8d8
  style b115d8d2_4bdd_4a69_c76d_1789ff11d443 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/plugins/css.ts lines 2898–2957

const lessProcessor = (
  maxWorkers: number | undefined,
): StylePreprocessor<LessStylePreprocessorInternalOptions> => {
  let worker: ReturnType<typeof makeLessWorker> | undefined

  return {
    close() {
      worker?.stop()
    },
    async process(environment, source, root, options, resolvers) {
      const lessPath = loadPreprocessorPath(PreprocessLang.less, root)
      worker ??= makeLessWorker(environment, resolvers, maxWorkers)

      const { content, map: additionalMap } = await getSource(
        source,
        options.filename,
        options.additionalData,
        options.enableSourcemap,
      )

      let result: Less.RenderOutput | undefined
      const optionsWithoutAdditionalData = {
        ...options,
        additionalData: undefined,
      }
      try {
        result = await worker.run(
          pathToFileURL(lessPath).href,
          content,
          optionsWithoutAdditionalData,
        )
      } catch (e) {
        const error = e as Less.RenderError
        // normalize error info
        const normalizedError: RollupError = new Error(
          `[less] ${error.message || error.type}`,
        ) as RollupError
        normalizedError.loc = {
          file: error.filename || options.filename,
          line: error.line,
          column: error.column,
        }
        return { code: '', error: normalizedError, deps: [] }
      }

      const map: ExistingRawSourceMap | undefined =
        result.map && JSON.parse(result.map)
      if (map) {
        delete map.sourcesContent
      }

      return {
        code: result.css.toString(),
        map,
        additionalMap,
        deps: result.imports,
      }
    },
  }
}

Domain

Subdomains

Frequently Asked Questions

What does lessProcessor() do?
lessProcessor() is a function in the vite codebase, defined in packages/vite/src/node/plugins/css.ts.
Where is lessProcessor() defined?
lessProcessor() is defined in packages/vite/src/node/plugins/css.ts at line 2898.
What does lessProcessor() call?
lessProcessor() calls 5 function(s): close, getSource, loadPreprocessorPath, makeLessWorker, parse.
What calls lessProcessor()?
lessProcessor() is called by 1 function(s): createPreprocessorWorkerController.

Analyze Your Own Codebase

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

Try Supermodel Free