UNPKG

create-quickstart-app

Version:

CLI tool to generate Next.js projects with various configurations

48 lines (47 loc) 1.45 kB
import { execSync } from "child_process"; import { createSpinner } from "../utils/spinner.js"; import { logger } from "../utils/logger.js"; let globalOptions; export async function createNextProject(options) { const { projectName, language, useClerk, orm, database, initGit, installDeps, useSrcDir, useTemplates, templates, } = options; globalOptions = { projectName, language, useClerk, orm, database, initGit, installDeps, useSrcDir, useTemplates, templates, }; const spinner = createSpinner("Creating Next.js project..."); const args = [ "create-next-app@latest", projectName, "--use-npm", "--eslint", language === "TypeScript" ? "--ts" : "--js", "--tailwind", "--app", useSrcDir ? "--src-dir" : "--no-src-dir", "--turbopack", "--import-alias=@", "--skip-questions", ]; try { // logger.info("\nRunning command: " + `npx ${args.join(" ")}`); execSync(`npx ${args.join(" ")}`, { stdio: "inherit" }); spinner.succeed("Next.js project created successfully"); return projectName; } catch (error) { spinner.fail("Failed to create Next.js project"); logger.error("Error creating Next.js project", error); throw error; } } export function getGlobalOptions() { return globalOptions; }