Home / Function/ overwriteVersionsInPackageJson() — tailwindcss Function Reference

overwriteVersionsInPackageJson() — tailwindcss Function Reference

Architecture documentation for the overwriteVersionsInPackageJson() function in utils.ts from the tailwindcss codebase.

Function typescript Oxide PreProcessors calls 1 called by 1

Entity Profile

Dependency Diagram

graph TD
  c85d3a5a_0ffc_357f_deb3_6b2ece89fdd5["overwriteVersionsInPackageJson()"]
  7600373a_3645_efb1_bcbb_e7c3fcb813ac["utils.ts"]
  c85d3a5a_0ffc_357f_deb3_6b2ece89fdd5 -->|defined in| 7600373a_3645_efb1_bcbb_e7c3fcb813ac
  44ea7d66_6ac1_15b9_1cc7_d01c23a5ee04["test()"]
  44ea7d66_6ac1_15b9_1cc7_d01c23a5ee04 -->|calls| c85d3a5a_0ffc_357f_deb3_6b2ece89fdd5
  65d9193f_0f3e_d857_a688_d6f7ac2a9bed["resolveVersion()"]
  c85d3a5a_0ffc_357f_deb3_6b2ece89fdd5 -->|calls| 65d9193f_0f3e_d857_a688_d6f7ac2a9bed
  style c85d3a5a_0ffc_357f_deb3_6b2ece89fdd5 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

integrations/utils.ts lines 473–508

async function overwriteVersionsInPackageJson(content: string): Promise<string> {
  let json = JSON.parse(content)

  // Resolve all workspace:^ versions to local tarballs
  for (let key of ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies']) {
    let dependencies = json[key] || {}
    for (let dependency in dependencies) {
      if (dependencies[dependency] === 'workspace:^') {
        dependencies[dependency] = resolveVersion(dependency)
      }
    }
  }

  // Inject transitive dependency overwrite. This is necessary because
  // @tailwindcss/vite internally depends on a specific version of
  // @tailwindcss/oxide and we instead want to resolve it to the locally built
  // version.
  json.pnpm ||= {}
  json.pnpm.overrides ||= {}
  for (let pkg of PUBLIC_PACKAGES) {
    if (pkg === 'tailwindcss') {
      // We want to be explicit about the `tailwindcss` package so our tests can
      // also import v3 without conflicting v4 tarballs.
      json.pnpm.overrides['@tailwindcss/node>tailwindcss'] = resolveVersion(pkg)
      json.pnpm.overrides['@tailwindcss/upgrade>tailwindcss'] = resolveVersion(pkg)
      json.pnpm.overrides['@tailwindcss/cli>tailwindcss'] = resolveVersion(pkg)
      json.pnpm.overrides['@tailwindcss/postcss>tailwindcss'] = resolveVersion(pkg)
      json.pnpm.overrides['@tailwindcss/vite>tailwindcss'] = resolveVersion(pkg)
      json.pnpm.overrides['@tailwindcss/webpack>tailwindcss'] = resolveVersion(pkg)
    } else {
      json.pnpm.overrides[pkg] = resolveVersion(pkg)
    }
  }

  return JSON.stringify(json, null, 2)
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does overwriteVersionsInPackageJson() do?
overwriteVersionsInPackageJson() is a function in the tailwindcss codebase, defined in integrations/utils.ts.
Where is overwriteVersionsInPackageJson() defined?
overwriteVersionsInPackageJson() is defined in integrations/utils.ts at line 473.
What does overwriteVersionsInPackageJson() call?
overwriteVersionsInPackageJson() calls 1 function(s): resolveVersion.
What calls overwriteVersionsInPackageJson()?
overwriteVersionsInPackageJson() is called by 1 function(s): test.

Analyze Your Own Codebase

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

Try Supermodel Free