AdSenseV

Mostrando postagens com marcador angular. Mostrar todas as postagens
Mostrando postagens com marcador angular. Mostrar todas as postagens

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