|
|
|
# Solução de Problemas - Prettier acusando erros em quebras de linha no Windows
|
|
|
|
|
|
|
|
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.
|
|
|
|
![](http://tools.ages.pucrs.br/garbus/garbus-wiki/raw/master/Images/crlf1.png)
|
|
|
|
|
|
|
|
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:
|
|
|
|
![](http://tools.ages.pucrs.br/garbus/garbus-wiki/raw/master/Images/crlf2.png)
|
|
|
|
* 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.
|
|
|
|
|