domingo, 15 de novembro de 2020
A revolução do PIX e a novela Cielo-Whatsapp x BACEN
sexta-feira, 6 de novembro de 2020
Problema no node-gyp ao preparar ambiente Angular no Linux Mint - "gyp err stack error make failed with exit code 2"
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 error
gyp ERR! stack Error: `make` failed with exit code: 2
(...)
gyp ERR! System Linux 4.15.0-20-generic
gyp 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-sass
gyp ERR! node -v v12.18.3
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build 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
Também publicado no medium