Problema no node-gyp ao preparar ambiente Angular no Linux Mint — “gyp err stack error make failed with exit code 2”
Postado originalmente em Novembro de 2020
Uma das desvantagens de trabalhar em home office são essas situações que surgem ao configurar ambientes que fazem a gente perder um bom tempo.
Principalmente se você trabalha com desenvolvimento de sistemas, feito eu. Enquanto eu estava usando o Linux Mint, as máquinas do trabalho todas são Ubuntu 18.
O PROBLEMA
Um problema bem chato que levou um bom tempo para descobrir a solução, similar a esse que foi relatado no stackoverflow.
Ao preparar a máquina para trabalhar com um sistema desenvolvido em Angular me deparei com um erro pois sempre o node-gyp era chamado para compilar alguns módulos tais como o node-sass.
Verifiquei que na máquina de todos os colegas não ocorria, somente na minha. Tanto no meu desktop antigo (Mint 19.3), quanto no notebook (Mint 19.1). Versão node 12.18.3 e npm 6.14.6. A máquina de todos eles era Ubuntu. Por que não mudei pra ele então? Porque não queria ter que preparar ooooutro ambiente!
Ao final do npm install dá esse erro:
gyp ERR! build errorgyp ERR! stack Error: `make` failed with exit code: 2gyp ERR! System Linux 4.15.0–20-genericgyp ERR! command “/home/windson-serpro/.nvm/versions/node/v12.18.3/bin/node” “/home/windson-serpro/git/serpro/editais/editais-suiterfb-frontend/node_modules/node-gyp/bin/node-gyp.js” “rebuild” “ — verbose” “ — libsass_ext=” “ — libsass_cflags=” “ — libsass_ldflags=” “ — libsass_library=”gyp ERR! cwd /home/windson-serpro/git/serpro/editais/editais-suiterfb-frontend/node_modules/node-sassgyp ERR! node -v v12.18.3gyp ERR! node-gyp -v v3.8.0gyp ERR! not okBuild failed with error code: 1
De tudo que pesquisei, se falava que eu tinha que instalar o build-essential para a compilação via make rodar. Sugeriam várias outras bibliotecas mas vi que não resolvia também.
Segui outra referência que apontava que eu deveria remover o package-lock.json, a pasta node_modules (se você realmente trabalha com node já fez isso milhares de vezes…) mas além disso a pasta oculta .node-gyp e então instalar de novo o node-gyp. Também não resolveu…
A SOLUÇÃO
Analisei o problema mais a fundo com um colega. Vimos que tinha um passo que ocorria na minha máquina mas nunca na dele: essa compilação do node-gyp.
O node-gyp serve para compilar módulos nativos, mas isso não deveria ser necessário nesse caso, e ele parecia tentar compilar o node-sass e com isso sempre dava erro no meu ambiente.
Portanto toda vez que eu rodasse o npm install e surgisse uma pasta oculta .node-gyp na minha home, era sinal de problema.
Fomos tentando outras versões do node até que eu fui bater na versão de sistema do Mint 19.1: a 8.10.0, bem antiga.
E então pela primeira vez o npm install rodou sem os erros do node-gyp.
Ou seja, quando está tudo OK ele encontra o binário da biblioteca, no meu caso o node-sass, e não precisa chamar o node-gyp.
Ao rodar o npm start, depois ainda deu um erro de dependência pois não achava a dependência quill.
Então foi só dar um npm install quill e depois o npm start que a aplicação rodou normalmente
Originally published at http://windmateus.blogspot.com.