Capítulo 268 de 456

create-next-app

Core Idea

CLI oficial para criar um app Next.js novo com um único comando, usando o template default ou um example de um repositório GitHub público, é a forma mais fácil de começar com Next.js.

Key Concepts

  • Uso básico: npx create-next-app@latest [project-name] [options] (ou equivalente pnpm/yarn/bun).
  • Fluxo de prompts (default): nome do projeto → escolher "recommended defaults" (TypeScript, ESLint, Tailwind CSS, App Router, AGENTS.md) vs "reuse previous settings" vs "customize settings".
  • Fluxo customizado: TypeScript sim/não, linter (ESLint/Biome/None), React Compiler, Tailwind CSS, src/ directory, App Router, import alias custom, AGENTS.md.
  • --api: inicializa um projeto só com route handlers (sem UI/páginas).
  • --agents-md: inclui AGENTS.md e CLAUDE.md para guiar coding agents (default habilitado).
  • --empty: inicializa um projeto vazio.
  • Linters disponíveis: ESLint (tradicional, regras Next.js via @next/eslint-plugin-next), Biome (linter+formatter rápido, com suporte nativo a Next.js/React), ou None.

Code Examples

npx create-next-app@latest
  • O que demonstra: comando mínimo para iniciar o wizard interativo de criação de projeto.
npx create-next-app@latest --example [example-name] [your-project-name]
  • O que demonstra: bootstrap a partir de um example oficial do repositório do Next.js.
npx create-next-app@latest --example "https://github.com/.../" [your-project-name]
  • O que demonstra: bootstrap a partir de qualquer repositório GitHub público (não precisa ser um example oficial), passando a URL diretamente.

Reference Tables

OptionsDescription
-h or --helpMostra todas as opções disponíveis.
-v or --versionMostra a versão.
--no-*Nega opção default, ex. --no-ts.
--ts or --typescriptProjeto TypeScript (default).
--js or --javascriptProjeto JavaScript.
--tailwindConfig Tailwind CSS (default).
--react-compilerHabilita React Compiler.
--eslintConfig ESLint.
--biomeConfig Biome.
--no-linterSem linter.
--appApp Router.
--apiSó route handlers.
--src-dirCódigo dentro de src/.
--turbopackForça Turbopack no package.json gerado (default habilitado).
--webpackForça webpack no package.json gerado.
--import-alias <alias>Alias de import (default "@/*").
--emptyProjeto vazio.
--use-npm/--use-pnpm/--use-yarn/--use-bunForça o package manager usado no bootstrap.
-e or --example [name] [github-url]Example para bootstrap.
--example-path <path>Path do example dentro do repo.
--reset-preferencesReseta preferências salvas.
--skip-installNão instala pacotes.
--disable-gitNão inicializa git.
--agents-mdInclui AGENTS.md/CLAUDE.md (default).
--yesUsa preferências anteriores ou defaults para tudo.

Anti-patterns

  • Não especificado explicitamente na página; a seção de exemplos foca em uso correto, não em erros comuns.

Key Takeaways

  1. Turbopack vem habilitado por default no package.json gerado; webpack precisa ser forçado explicitamente com --webpack.
  2. create-next-app guarda preferências entre execuções (--reset-preferences limpa isso, --yes reusa tudo sem perguntar).
  3. Suporte a examples cobre tanto examples oficiais do repo do Next.js quanto qualquer repositório GitHub público via URL.
  4. AGENTS.md/CLAUDE.md são incluídos por default desde essa versão, refletindo o foco em projetos trabalhados por coding agents.

Connects To

  • CLI (cli, índice): página pai que lista create-next-app e next CLI.
  • eslint-config-next: gerado automaticamente quando o linter escolhido é ESLint.