Problema no node-gyp ao preparar ambiente Angular no Linux Mint — “gyp err stack error make failed with exit code 2”

Windson Mateus
3 min readSep 26, 2021

--

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.

--

--

Windson Mateus

Analista de Sistemas, programador full stack, sempre perseverante