Estou fazendo o curso do vtex learn (Conectando a um Serviço), aonde pede pra adicionar uma pasata node e uma graphql porem apresenta um erro no terminal qnd executo o vtex link:
erros error: node@4.x builder failed to install dependencies through yarn (retries=3)
yarn errors:
yarn errors:
graphql@16.1.0: The engine "node" is incompatible with this module. Expected version "^12.22.0 || ^14.16.0 || >=16.0.0". Got "12.16.1"
Found incompatible module. vtex.builder-hub@0.283.0
vi q e com relação a versao do node, porem a versao que utilizo ta dentre essas informadas no erro.
versao : wanderson in admin-course on master [!?] took 2s ❯ node -v
v14.16.0
ou seja ja tentei de tudo porem sempre apresenta o erro.
@wandersoncorrea pelo que eu tô vendo nas mensagens de erro, parece que você está com uma versão desatualizada do Node.js na sua máquina ou no projeto.
Para mudar facilmente a versão na sua máquina, recomendo usar o n… É super fácil de usar e prático quando você precisa trabalhar em projetos com necessidades diferentes.
Para checar se o projeto está com uma versão diferente, é importante checar o arquivo package.json. Parece que o @types/node que consta no package.json fornecido como exemplo no curso está na versão 12, pode ser que impacte indiretamente.
Vale dar uma lida nesse guia que explica tudo sobre o package.json:
Estou anexado aqui a solução que obtive via suporte, para que ajude outras pessoas que venham a enfrentar o mesmo problema:
O que deve funcionar é o seguinte:
1 - Na paste node do projeto, no package.json, troque a versão do @vtex/api para 6.45.10 e do @vtex/test-tools para ^3.4.3
2 - Apague o arquivo yarn.lock
3 - Rode um yarn install ainda dentro da pasta node.
Após seguir esses passos, o builder não deve mais ter problemas pra montar o seu app na hora de linkar.
A título de informação: Essa versão do node que ele reclama na linha de comando é a do builder da VTEX e não a da sua máquina, ou seja: tudo que tiver que ser buildado na hora do link tem obrigatoriamente que estar liberado para uso no node 12 e em termos de libs para apps de front, react 16. Qualquer coisa fora disso vai dar erro. Já até abri chamado junto à VTEX pra ver se conseguiam colocar o node 14 pelo menos no lado do servidor e disseram que não há como.