Introdução
É importante o entendimento dos diretórios do projeto, para que seja possivel a manutenção e se manter os padrões de projeto. Você também pode configurar o seu projeto de acordo com suas preferências, como alterar a versão, nome, metadados, etc.
Alguns arquivos de configuração serão abordados mais adiante, em outras seções.
Diretórios
Os diretórios do projeto são organizados de forma a manter a padronização e facilitar a manutenção, abaixo estão os diretórios e arquivos do projeto:
public: Pasta com arquivos estáticos que serão servidos pelo servidor. Principalmente imagenssrc: Diretório contendo o código fonte do projeto..husky: Diretório contendo os scripts que serão utilizados na checagem de commits..next: Diretório gerado pelo Next durante a execução do projeto, tem configurações, cache, etc.node_modules: Diretório em que seram armazenadas as dependências do projeto geradas pelopackage.json..gitignore: Arquivo onde ficam os diretórios e arquivos a serem ignorados pelo git.components.json: Arquivo JSON utilizado pelo shadcn para a adição de novos componentes por meio de sua CLI (Command Line Interface).eslint.config.mjs: Onde ficam os arquivos de configuração do ESLint.LICENSE: Licensa da codebase.next.config.ts: Arquivo de configurações do Next.package.json: Arquivo de dependências do seu projeto, além de versão atual e nome.package-lock.json: Arquivo de dependências do seu projeto, gerado pelopackage.json.postcss.config.mjs: Arquivo de configurações do PostCSS.README.md: Arquivo readme do projeto que será utilizado pelo Github.tailwind.config.ts: Arquivo de configurações do TailwindCSS.tsconfig.json: Arquivo JSON de configuração do Typescript em relação ao React e Next.next-env.d.ts: Arquivo gerado pelo Next durante a sua execução, assim como o diretório.next.
A maioria dos diretórios e arquivos acima serão explorados em suas respectivas seções, mas abaixo abordaremos alguns deles.
Diretório public
Onde ficam os arquivos estáticos do projeto, como imagens, arquivos pdf para download, svgs, etc. É composto por 3 principais subdiretórios:
files: Armazenamento para arquivos de texto e que não sejam imagens de forma geral.icons: Onde ficarão os icones da aplicação e icones de uso geral (formato svg).images: Onde ficarão imagens png, jpg ou jpeg da aplicação, imagens mais pesadas.
Diretório src
É o principal diretório do projeto, contém todo código fonte que gerará a aplicação e é composto pelos seguintes subdiretórios:
app: Onde ficam os arquivos de fonte que o Next chamará, além de um arquivo de css global e sistema de roteamento em seus subdiretórios.components: Onde ficará os seus componentes, sendouipara componentes comuns de UI ecorepara componentes CORE da sua aplicação, menos generalizados.data: Usado para arquivos contendo dados estáticos da sua aplicação.hooks: Onde se armazenará os hooks da sua aplicação.services: Armazenamento de arquivos de servico da aplicação. Ex. chamada de API's externas ou internas, conexão com banco de dados, etc.tests: Onde ficarão os arquivos de testes para a aplicação, caso haja.types: Arquivostsoutsxque descrevem os tipos para os dados.utils: Onde ficam as funções de utilidade interna comuns da aplicação, caso haja a interação com bibliotecas, se pode utilizar o subdiretóriolib.
Versões antigas do Next utilizavam outra organização de diretórios na pasta app, pages era um diretório comum em que seriam organizadas as suas páginas para roteamento.
Configurações
Por enquanto, ainda não mexeremos com arquivos de configuração a fundo, as configurações serão melhor abordadas em suas respectivas seções.
De começo, podemos definir um nome para nosso projeto no arquivo package.json, além de definir uma versão inicial para a aplicação.
A versão inicial é importante para que possamos controlar as versões da aplicação, além de ser um padrão de mercado. Recomendamos a utilização de 1.0.0-SNAPSHOT para a primeira versão.
1Mais detalhes desse arquivo poderão ser encontradas em Node e em outras páginas deste guia.