Home / Function/ createNextProject() — ui Function Reference

createNextProject() — ui Function Reference

Architecture documentation for the createNextProject() function in create-project.ts from the ui codebase.

Entity Profile

Dependency Diagram

graph TD
  15eda161_afa0_52f7_da93_62b0a8c2e3ea["createNextProject()"]
  f570a109_148e_1b68_ffd0_6e7f2f8ca03d["create-project.ts"]
  15eda161_afa0_52f7_da93_62b0a8c2e3ea -->|defined in| f570a109_148e_1b68_ffd0_6e7f2f8ca03d
  ee4c31b0_cc12_35da_90d1_168cb9e6c7f0["createProject()"]
  ee4c31b0_cc12_35da_90d1_168cb9e6c7f0 -->|calls| 15eda161_afa0_52f7_da93_62b0a8c2e3ea
  style 15eda161_afa0_52f7_da93_62b0a8c2e3ea fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/shadcn/src/utils/create-project.ts lines 171–227

async function createNextProject(
  projectPath: string,
  options: {
    version: string
    cwd: string
    packageManager: string
    srcDir: boolean
  }
) {
  const createSpinner = spinner(
    `Creating a new Next.js project. This may take a few minutes.`
  ).start()

  // Note: pnpm fails here. Fallback to npx with --use-PACKAGE-MANAGER.
  const args = [
    "--tailwind",
    "--eslint",
    "--typescript",
    "--app",
    options.srcDir ? "--src-dir" : "--no-src-dir",
    "--no-import-alias",
    `--use-${options.packageManager}`,
  ]

  if (
    options.version.startsWith("15") ||
    options.version.startsWith("latest") ||
    options.version.startsWith("canary")
  ) {
    args.push("--turbopack")
  }

  if (
    options.version.startsWith("latest") ||
    options.version.startsWith("canary")
  ) {
    args.push("--no-react-compiler")
  }

  try {
    await execa(
      "npx",
      [`create-next-app@${options.version}`, projectPath, "--silent", ...args],
      {
        cwd: options.cwd,
      }
    )
  } catch (error) {
    logger.break()
    logger.error(
      `Something went wrong creating a new Next.js project. Please try again.`
    )
    process.exit(1)
  }

  createSpinner?.succeed("Creating a new Next.js project.")
}

Subdomains

Called By

Frequently Asked Questions

What does createNextProject() do?
createNextProject() is a function in the ui codebase, defined in packages/shadcn/src/utils/create-project.ts.
Where is createNextProject() defined?
createNextProject() is defined in packages/shadcn/src/utils/create-project.ts at line 171.
What calls createNextProject()?
createNextProject() is called by 1 function(s): createProject.

Analyze Your Own Codebase

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

Try Supermodel Free