Estrutura do projeto Next.js
Ao criar um projeto Next.js, você encontrará uma série de arquivos e diretórios que servem para organizar o código, gerenciar dependências e configurar o comportamento da aplicação.
Sendo que alguns desses elementos são utilizados pelo Next.js como arquivos de configuração, e para a ferramenta poder os diferenciais, eles seguem algumas convenções de nomenclatura.
Diretório de nível superior
Os diretórios de nível superior são usados para organizar o código da aplicação e os recursos estáticos.
app
: Diretório utilizado pelo App Router.pages
: Diretório utilizado pelo Pages Router.public
: Diretório para arquivos estáticos, como imagens, fontes e outros recursos que precisam ser servidos diretamente.src
: Diretório opcional para organizar o código-fonte da aplicação. Usar este diretório pode ajudar a manter o projeto mais organizado.
Arquivos de nível superior
Os arquivos de nível superior são usados para configurar a aplicação, gerenciar dependências, executar middlewares, integrar ferramentas de monitoramento e definir variáveis de ambiente.
next.config.js
: Arquivo de configuração do Next.js. Permite personalizar o comportamento do framework, como definições de build, roteamento e configurações de plugins.package.json
: Arquivo que define as dependências do projeto e scripts de execução. É gerenciado pelo NPM ou yarn e contém metadados sobre o projeto.instrumentation.ts
: Arquivo utilizado para integração com OpenTelemetry e outras ferramentas de instrumentação.middleware.ts
: Arquivo para middlewares de requisição do Next.js. Permite a execução de código personalizado durante o processamento de requisições..env
: Arquivo para definir variáveis de ambiente padrão usadas pela aplicação..env.local
: Arquivo para definir variáveis de ambiente locais..env.production
: Arquivo para definir variáveis de ambiente para o ambiente de produção..env.development
: Arquivo para definir variáveis de ambiente para o ambiente de desenvolvimento..eslintrc.json
: Arquivo de configuração para o ESLint, usado para garantir a consistência e qualidade do código..gitignore
: Arquivo que especifica quais arquivos e diretórios devem ser ignorados pelo Git.next-env.d.ts
: Arquivo de declaração do TypeScript para Next.js. Necessário para garantir a correta tipagem do TypeScript no projeto.tsconfig.json
: Arquivo de configuração do TypeScript. Define como o compilador do TypeScript deve processar o código.jsconfig.json
: Arquivo de configuração do JavaScript. Utilizado em projetos que não utilizam TypeScript, mas precisam de configurações específicas para o editor.