Home / Function/ doCompileStyle() — vue Function Reference

doCompileStyle() — vue Function Reference

Architecture documentation for the doCompileStyle() function in compileStyle.ts from the vue codebase.

Entity Profile

Dependency Diagram

graph TD
  e630ee87_e220_092a_592c_f7079f566b16["doCompileStyle()"]
  028e31ce_07f6_d5b2_134a_c0b5bb64823a["compileStyle.ts"]
  e630ee87_e220_092a_592c_f7079f566b16 -->|defined in| 028e31ce_07f6_d5b2_134a_c0b5bb64823a
  2c0be114_caf8_7ca4_a58d_5d1e7fc8c767["compileStyle()"]
  2c0be114_caf8_7ca4_a58d_5d1e7fc8c767 -->|calls| e630ee87_e220_092a_592c_f7079f566b16
  4f05dc7f_bf18_8e4a_32ed_3fbb6cd4d8e2["compileStyleAsync()"]
  4f05dc7f_bf18_8e4a_32ed_3fbb6cd4d8e2 -->|calls| e630ee87_e220_092a_592c_f7079f566b16
  0b2d5d49_6100_90a7_4e55_d3f71845a4f2["preprocess()"]
  e630ee87_e220_092a_592c_f7079f566b16 -->|calls| 0b2d5d49_6100_90a7_4e55_d3f71845a4f2
  fb6267c8_5229_7c63_13f5_a76775258149["cssVarsPlugin()"]
  e630ee87_e220_092a_592c_f7079f566b16 -->|calls| fb6267c8_5229_7c63_13f5_a76775258149
  e216ffaf_0c42_60ac_d6c1_19f7df757f23["trimPlugin()"]
  e630ee87_e220_092a_592c_f7079f566b16 -->|calls| e216ffaf_0c42_60ac_d6c1_19f7df757f23
  10a8720e_d85f_e74e_ebd7_52d351d7789b["scopedPlugin()"]
  e630ee87_e220_092a_592c_f7079f566b16 -->|calls| 10a8720e_d85f_e74e_ebd7_52d351d7789b
  style e630ee87_e220_092a_592c_f7079f566b16 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/compiler-sfc/src/compileStyle.ts lines 49–131

export function doCompileStyle(
  options: SFCAsyncStyleCompileOptions
): SFCStyleCompileResults {
  const {
    filename,
    id,
    scoped = true,
    trim = true,
    isProd = false,
    preprocessLang,
    postcssOptions,
    postcssPlugins
  } = options
  const preprocessor = preprocessLang && processors[preprocessLang]
  const preProcessedSource = preprocessor && preprocess(options, preprocessor)
  const map = preProcessedSource ? preProcessedSource.map : options.map
  const source = preProcessedSource ? preProcessedSource.code : options.source

  const plugins = (postcssPlugins || []).slice()
  plugins.unshift(cssVarsPlugin({ id: id.replace(/^data-v-/, ''), isProd }))
  if (trim) {
    plugins.push(trimPlugin())
  }
  if (scoped) {
    plugins.push(scopedPlugin(id))
  }

  const postCSSOptions: ProcessOptions = {
    ...postcssOptions,
    to: filename,
    from: filename
  }
  if (map) {
    postCSSOptions.map = {
      inline: false,
      annotation: false,
      prev: map
    }
  }

  let result, code, outMap
  const errors: any[] = []
  if (preProcessedSource && preProcessedSource.errors.length) {
    errors.push(...preProcessedSource.errors)
  }
  try {
    result = postcss(plugins).process(source, postCSSOptions)

    // In async mode, return a promise.
    if (options.isAsync) {
      return result
        .then(
          (result: LazyResult): SFCStyleCompileResults => ({
            code: result.css || '',
            map: result.map && result.map.toJSON(),
            errors,
            rawResult: result
          })
        )
        .catch(
          (error: Error): SFCStyleCompileResults => ({
            code: '',
            map: undefined,
            errors: [...errors, error.message],
            rawResult: undefined
          })
        )
    }

    // force synchronous transform (we know we only have sync plugins)
    code = result.css
    outMap = result.map
  } catch (e) {
    errors.push(e)
  }

  return {
    code: code || ``,
    map: outMap && outMap.toJSON(),
    errors,
    rawResult: result

Domain

Subdomains

Frequently Asked Questions

What does doCompileStyle() do?
doCompileStyle() is a function in the vue codebase, defined in packages/compiler-sfc/src/compileStyle.ts.
Where is doCompileStyle() defined?
doCompileStyle() is defined in packages/compiler-sfc/src/compileStyle.ts at line 49.
What does doCompileStyle() call?
doCompileStyle() calls 4 function(s): cssVarsPlugin, preprocess, scopedPlugin, trimPlugin.
What calls doCompileStyle()?
doCompileStyle() is called by 2 function(s): compileStyle, compileStyleAsync.

Analyze Your Own Codebase

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

Try Supermodel Free