aceleradora-TW / nossa-casa-front

0 stars 5 forks source link

chore: downgrade lint-staged #108

Closed yrachid closed 1 year ago

yrachid commented 1 year ago

Problema

Em algumas situações, vemos um erro ao executar yarn install. Isso ocorre por causa de uma dependência que é incompatível com nosso projeto.

Nosso package.json exige que usemos uma versão de node que esteja entre 14 e 16.

Entretanto, nas nossas dependências, temos o lint-staged@15.0.2, que exige o node 18: https://github.com/lint-staged/lint-staged/commit/66b93aac870d155ca81302b2574617da99409ca7

Screenshot 2023-11-20 at 18 08 35

Logo, não é possível satisfazer as exigências do nosso próprio projeto e do lint-staged 15 ao mesmo tempo, pois elas são mutuamente exclusivas.

Solução

Como solução temporária, fizemos o downgrade da biblioteca lint-staged para a versão 14.0.1, que exige o uso do node 16.0.

https://github.com/lint-staged/lint-staged/commit/66b93aac870d155ca81302b2574617da99409ca7

Solução ideal

Idealmente, precisamos resolver algumas questões:

Atualizar versão do Node no Projeto

Atualizar o nosso projeto para exigir versões mais recentes do Node, pois versões 14 e 16 já chegaram o fim da vida.

Remover dependências não usadas

Coisas como:

Corrigir exigências do npm audit

Depois que estivermos usando uma versão mais recente do node, poderemos provavelmente atualizar muitas bibliotecas para versões mais recentes e mais seguras.

Trancar a versão do yarn

Eu suspeito que de uma versão para outra do Yarn algo tenha mudado no formato do arquivo yarn.lock e é por isso que temos tantos conflitos entre PRs. Eu ainda não encontrei nada no site deles dizendo algo sobre isso, mas pelo diff, é o que eu acho que está acontecendo:

Screenshot 2023-11-20 at 18 13 10

coincidence

Outro ponto é que, pelo que entendo, a versão do Yarn é independente da versão do Node que estamos usando, então estas duas coisas podem mudar de forma independente. Para evitar bugs e inconsistências como os conflitos que temos, eu sugeriria que o time inteiro usasse a mesma versão de Yarn (e de Node)