Home / Function/ publishPackage() — vue Function Reference

publishPackage() — vue Function Reference

Architecture documentation for the publishPackage() function in release.js from the vue codebase.

Entity Profile

Dependency Diagram

graph TD
  4966327d_52f6_e756_ab8d_6813a6a45a44["publishPackage()"]
  9797ceff_6b01_5793_df1c_703211bf1f43["main()"]
  9797ceff_6b01_5793_df1c_703211bf1f43 -->|calls| 4966327d_52f6_e756_ab8d_6813a6a45a44
  56a36a8e_348d_8a6c_fe22_109141d8b264["getPkgRoot()"]
  4966327d_52f6_e756_ab8d_6813a6a45a44 -->|calls| 56a36a8e_348d_8a6c_fe22_109141d8b264
  3ec13699_f292_f51d_de06_ed5cc90ff63e["step()"]
  4966327d_52f6_e756_ab8d_6813a6a45a44 -->|calls| 3ec13699_f292_f51d_de06_ed5cc90ff63e
  style 4966327d_52f6_e756_ab8d_6813a6a45a44 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

scripts/release.js lines 146–200

async function publishPackage(pkgName, version, runIfNotDry) {
  const pkgRoot = getPkgRoot(pkgName)
  const pkgPath = path.resolve(pkgRoot, 'package.json')
  const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))
  const publishedName = pkg.name
  if (pkg.private) {
    return
  }

  let releaseTag = null
  if (args.tag) {
    releaseTag = args.tag
  } else if (version.includes('alpha')) {
    releaseTag = 'alpha'
  } else if (version.includes('beta')) {
    releaseTag = 'beta'
  } else if (version.includes('rc')) {
    releaseTag = 'rc'
  }

  // avoid overwriting tags for v3
  if (pkgName === 'vue' || pkgName === 'compiler-sfc') {
    if (releaseTag) {
      releaseTag = `v2-${releaseTag}`
    } else {
      releaseTag = 'v2-latest'
    }
  }

  step(`Publishing ${publishedName}...`)
  try {
    await runIfNotDry(
      'pnpm',
      [
        'publish',
        ...(releaseTag ? ['--tag', releaseTag] : []),
        '--access',
        'public'
      ],
      {
        cwd: pkgRoot,
        stdio: 'pipe'
      }
    )
    console.log(
      chalk.green(`Successfully published ${publishedName}@${version}`)
    )
  } catch (e) {
    if (e.stderr.match(/previously published/)) {
      console.log(chalk.red(`Skipping already published: ${publishedName}`))
    } else {
      throw e
    }
  }
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does publishPackage() do?
publishPackage() is a function in the vue codebase.
What does publishPackage() call?
publishPackage() calls 2 function(s): getPkgRoot, step.
What calls publishPackage()?
publishPackage() is called by 1 function(s): main.

Analyze Your Own Codebase

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

Try Supermodel Free