Usuários de Windows, ao trabalharem no projeto do frontend, podem se deparar com o seguinte problema:
Ao tentar rodar o projeto (npm start
), podem aparecer erros como o da screenshot abaixo.
Isso ocorre por dois motivos:
- O Git for Windows por padrão converte as quebras de linha de LF para CRLF ao baixar arquivos (clone, pull, etc.) e converte de volta para LF no momento do commit. Essa configuração existe porque no Windows, a quebra de linha padrão é CRLF, enquanto em sistemas Unix é LF (mais informações em https://en.wikipedia.org/wiki/Newline). Há outras configurações, disponíveis na seguinte tela do instalador:
- O Prettier está configurado para aceitar somente LF.
Solução
Antes de executar os comandos a seguir, o repositório deve estar limpo, ou seja, faça os commits necessários e não deixe nenhum arquivo importante com status unstaged ou staged, porque um dos comandos vai redefinir o repositório para o estado do último commit, descartando qualquer alteração e qualquer arquivo não "commitado".
No Prompt de Comando (cmd) ou Powershell, execute os comandos abaixo:
# Alterar a configuração apenas no repositório para "Checkout as-is, commit as-is",
# ou seja, não fará nenhuma conversão de quebras de linha
git config core.autocrlf false
# Redefinir o repositório
git reset --hard
# Formatar quaisquer arquivos que estejam possam ter ficado com CRLF
npx prettier --write .\src\**
É possível que apareça vários arquivos modificados no Git, mas nenhuma alteração visível. Provavelmente esses arquivos nem vão entrar em staged ao adicioná-los (git add
), então não há problema.