Home / Function/ migratePostCSSConfig() — tailwindcss Function Reference

migratePostCSSConfig() — tailwindcss Function Reference

Architecture documentation for the migratePostCSSConfig() function in migrate-postcss.ts from the tailwindcss codebase.

Entity Profile

Dependency Diagram

graph TD
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069["migratePostCSSConfig()"]
  9434c276_afef_dc51_650b_a8b408f077fc["migrate-postcss.ts"]
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 -->|defined in| 9434c276_afef_dc51_650b_a8b408f077fc
  817bb61a_7ad0_1186_790a_6a40126eed80["run()"]
  817bb61a_7ad0_1186_790a_6a40126eed80 -->|calls| 0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069
  3fbb522f_26f0_74e8_421c_8d9677121a34["detectJSConfigPath()"]
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 -->|calls| 3fbb522f_26f0_74e8_421c_8d9677121a34
  f9e8808d_82e8_403c_7491_74c3ba5e23be["migratePostCSSJSConfig()"]
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 -->|calls| f9e8808d_82e8_403c_7491_74c3ba5e23be
  a91ee9d1_7968_6801_1de5_9ce7a305be96["migratePostCSSJsonConfig()"]
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 -->|calls| a91ee9d1_7968_6801_1de5_9ce7a305be96
  96f45b6f_b278_8e70_7a05_be18a2412c71["detectJSONConfigPath()"]
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 -->|calls| 96f45b6f_b278_8e70_7a05_be18a2412c71
  8e778e08_76c6_9ee6_899b_7331b37b18ea["info()"]
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 -->|calls| 8e778e08_76c6_9ee6_899b_7331b37b18ea
  9cc0ff32_ad5a_9207_5cc6_12717c5ad23e["pkg()"]
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 -->|calls| 9cc0ff32_ad5a_9207_5cc6_12717c5ad23e
  a8400c40_f6b4_6c1d_1812_df53f33aaafc["success()"]
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 -->|calls| a8400c40_f6b4_6c1d_1812_df53f33aaafc
  d3ccc5ce_e370_63df_a97d_a2f004fd83ca["highlight()"]
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 -->|calls| d3ccc5ce_e370_63df_a97d_a2f004fd83ca
  1c806fef_a933_285c_65d9_c10998b12c7d["relative()"]
  0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 -->|calls| 1c806fef_a933_285c_65d9_c10998b12c7d
  style 0cb85618_1b33_b9dc_ae2b_1bc3e6bd6069 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/@tailwindcss-upgrade/src/codemods/config/migrate-postcss.ts lines 19–131

export async function migratePostCSSConfig(base: string) {
  let ranMigration = false
  let didMigrate = false
  let didAddPostcssClient = false
  let didRemoveAutoprefixer = false
  let didRemovePostCSSImport = false

  let packageJsonPath = path.resolve(base, 'package.json')
  let packageJson
  try {
    packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'))
  } catch {}

  // Priority 1: Handle JS config files
  let jsConfigPath = await detectJSConfigPath(base)
  if (jsConfigPath) {
    let result = await migratePostCSSJSConfig(jsConfigPath)
    ranMigration = true

    if (result) {
      didMigrate = true
      didAddPostcssClient = result.didAddPostcssClient
      didRemoveAutoprefixer = result.didRemoveAutoprefixer
      didRemovePostCSSImport = result.didRemovePostCSSImport
    }
  }

  // Priority 2: Handle package.json config
  if (!ranMigration) {
    if (packageJson && 'postcss' in packageJson) {
      let result = await migratePostCSSJsonConfig(packageJson.postcss)
      ranMigration = true

      if (result) {
        await fs.writeFile(
          packageJsonPath,
          JSON.stringify({ ...packageJson, postcss: result?.json }, null, 2),
        )

        didMigrate = true
        didAddPostcssClient = result.didAddPostcssClient
        didRemoveAutoprefixer = result.didRemoveAutoprefixer
        didRemovePostCSSImport = result.didRemovePostCSSImport
      }
    }
  }

  // Priority 3: JSON based postcss config files
  if (!ranMigration) {
    let jsonConfigPath = await detectJSONConfigPath(base)
    let jsonConfig: null | any = null
    if (jsonConfigPath) {
      try {
        jsonConfig = JSON.parse(await fs.readFile(jsonConfigPath, 'utf-8'))
      } catch {}
      if (jsonConfig) {
        let result = await migratePostCSSJsonConfig(jsonConfig)
        ranMigration = true

        if (result) {
          await fs.writeFile(jsonConfigPath, JSON.stringify(result.json, null, 2))

          didMigrate = true
          didAddPostcssClient = result.didAddPostcssClient
          didRemoveAutoprefixer = result.didRemoveAutoprefixer
          didRemovePostCSSImport = result.didRemovePostCSSImport
        }
      }
    }
  }

  if (!ranMigration) {
    info('No PostCSS config found, skipping migration.', {
      prefix: '↳ ',
    })
    return
  }

  if (didAddPostcssClient) {
    let location = Object.hasOwn(packageJson?.dependencies ?? {}, 'tailwindcss')
      ? ('dependencies' as const)

Subdomains

Called By

Frequently Asked Questions

What does migratePostCSSConfig() do?
migratePostCSSConfig() is a function in the tailwindcss codebase, defined in packages/@tailwindcss-upgrade/src/codemods/config/migrate-postcss.ts.
Where is migratePostCSSConfig() defined?
migratePostCSSConfig() is defined in packages/@tailwindcss-upgrade/src/codemods/config/migrate-postcss.ts at line 19.
What does migratePostCSSConfig() call?
migratePostCSSConfig() calls 9 function(s): detectJSConfigPath, detectJSONConfigPath, highlight, info, migratePostCSSJSConfig, migratePostCSSJsonConfig, pkg, relative, and 1 more.
What calls migratePostCSSConfig()?
migratePostCSSConfig() is called by 1 function(s): run.

Analyze Your Own Codebase

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

Try Supermodel Free