Referência completa para todas as flags de linha de comando do create-next-app no Next.js 15, quando usar cada uma e comandos de copiar e colar para cenários comuns. Originado da documentação incluída em next/dist/docs/01-app/03-api-reference/06-cli/create-next-app.md.
create-next-app é um scaffolder independente publicado no npm. Quando você o executa através de npx, pnpm create, yarn create ou bun create, o gerenciador de pacotes baixa o pacote para um cache temporário e executa sua entrada bin. A CLI:
Analisa as flags e as combina com quaisquer preferências armazenadas em ~/.config/create-next-app/.
Pergunta apenas por respostas que não foram fornecidas na linha de comando.
Escolhe um template - o template padrão, --empty para um template básico, ou o repositório apontado por -e / --example.
Copia os arquivos para o diretório de destino, reescrevendo nomes de pacotes.
Executa o comando de instalação do gerenciador de pacotes escolhido, a menos que --skip-install esteja definido.
Executa git init e um commit inicial, a menos que --disable-git esteja definido.
Escreve AGENTS.md e CLAUDE.md, a menos que --no-agents-md esteja definido.
Como as preferências armazenadas são respeitadas, dois desenvolvedores executando o mesmo comando create-next-app podem obter scaffolds diferentes. --reset-preferences ou passar todas as flags explicitamente garantem a determinismo.
As flags --typescript e --ts são aliases para o mesmo comportamento - ambas escrevem tsconfig.json com strict: true, moduleResolution: "bundler", o plugin Next registrado e caminhos @/* configurados. Todo o resto é idêntico.
Comparado a adicionar TypeScript manualmente depois (npm install -D typescript @types/react @types/node, então executar next dev), a flag economiza um passo: Next gera tsconfig.json automaticamente na primeira execução de next dev de qualquer maneira, mas a flag também instala as dependências de desenvolvimento e escreve next-env.d.ts antecipadamente. Para monorepos onde você já controla um tsconfig.base.json compartilhado, pular --typescript e configurar TS manualmente é às vezes mais limpo.
--tailwind vs --no-tailwind - não há simetria --no-ts-style para todas as flags. A maioria das flags suporta --no-*, mas o texto de ajuda é a fonte da verdade; sempre verifique com create-next-app --help.
-e significa --example, não --eslint. As flags curtas são comprimidas e fáceis de digitar incorretamente. Use flags longas em scripts.
-ts não é uma flag curta - --ts requer dois hifens. Um único hífen -ts será analisado como -t -s e gerará um erro.
Padrões mudam entre versões do Next.js. Tailwind, ESLint e Turbopack se tornaram padrões relativamente recentemente. Se o seu README diz npx create-next-app@latest, o scaffold resultante irá variar ao longo do tempo; fixe em @15 ou passe todas as flags explicitamente.
--use-npm não bloqueia outros gerenciadores de pacotes. Ele seleciona npm como o instalador para a etapa de scaffolding; você ainda pode executar pnpm install depois no projeto e funcionará (você apenas terá ambos os lockfiles para limpar).
O modo interativo lembra respostas anteriores. Uma segunda execução no mesmo shell pode preencher silenciosamente respostas do cache. Use --reset-preferences ou --yes com flags explícitas para reprodutibilidade.
--yes segue quaisquer que sejam os padrões atuais. Um job de CI usando --yes produzirá uma saída diferente após um lançamento principal do Next.js. Prefira flags explícitas em CI.
--example desabilita a maioria das outras flags. Quando você faz bootstrap de um exemplo, flags como --tailwind ou --src-dir são ignoradas porque o exemplo já define sua própria estrutura.
Revisão rápida desta página - clique para expandir.
Qual é a diferença entre `--ts` e `--typescript`?
Nada. São aliases para a mesma flag e produzem o mesmo tsconfig.json, dependências e next-env.d.ts.
Como eu desativo uma flag padrão?
Prefixe-a com --no-. Por exemplo, --no-tailwind, --no-eslint, --no-src-dir. Armadilha: nem toda flag suporta negação; execute create-next-app --help para confirmar.
O que `--yes` faz?
Ele pula todas as perguntas e usa suas preferências armazenadas se existirem, caso contrário, os padrões atuais. Seguro para primeiras execuções; arriscado em scripts de longa duração porque os padrões mudam.
Posso pular `git init`?
Sim - passe --disable-git. Útil ao fazer scaffolding em um diretório que já é um repositório git ou um monorepo.
Posso pular `npm install`?
Sim - passe --skip-install. A CLI ainda copiará os arquivos e inicializará o git; você executa o instalador depois.
Como faço bootstrap de um exemplo do GitHub?
npx create-next-app@latest meu-app --example "https://github.com/owner/repo/tree/branch/path/to/example". Funciona para qualquer repositório público do GitHub.
Para que serve `--empty`?
Ele cria um projeto mínimo sem conteúdo de demonstração - sem estilos iniciais, sem componentes de exemplo - apenas os arquivos que você precisa para o router iniciar.
O `--use-npm` me impede de usar pnpm depois?
Não. Ele apenas controla qual instalador é executado durante o scaffolding. Você pode trocar de gerenciador de pacotes depois. Armadilha: exclua o lockfile antigo primeiro ou você acabará com ambos package-lock.json e pnpm-lock.yaml.
Por que meu scaffold foi diferente hoje do que na semana passada?
Você está executando @latest e os padrões mudaram entre as versões do Next.js. Fixe a versão: create-next-app@15.0.0. Armadilha: isso acontece silenciosamente, muitas vezes após um lançamento menor do Next.js.
Existe uma maneira de forçar Webpack em vez de Turbopack?
Sim - --webpack escreve o package.json gerado para que next dev e next build usem Webpack.
O `--typescript` difere de adicionar TS manualmente depois?
Funcionalmente, não. Ambos acabam com o mesmo tsconfig.json porque o Next o gera na primeira execução de qualquer maneira. Nota TS: a flag adicionalmente pré-instala typescript, @types/react e @types/node para que o primeiro next dev não pause para instalá-los.
O que `--react-compiler` realmente ativa?
Ele configura o React Compiler (a ferramenta de memoização em tempo de build) em next.config.ts desde o início. Nota TS: o compilador é ortogonal ao TypeScript - ele afeta a saída do build, não o sistema de tipos.