Solucionado (ver solução)
Solucionado
(ver solução)
12
respostas

Erro ao dar "npm install" na api

Como posso resolver o problema? Não consigo dar um "npm install" na raiz da web api.

PS C:\Users\user\Tutoriais\Alura\Angular\api> npm install
                                                                                              :\Users\user\Tutoriais
> sqlite3@4.0.0 install C:\Users\user\Tutoriais\Alura\Angular\api\node_modules\sqlite3
> node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Completion callback never invoked!
node-pre-gyp ERR! System Windows_NT 10.0.15063
node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\user\\Tutoriais\\Alura\\Angular\\api\\nod
e_modules\\sqlite3\\node_modules\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd C:\Users\user\Tutoriais\Alura\Angular\api\node_modules\sqlite3
node-pre-gyp ERR! node -v v9.8.0
node-pre-gyp ERR! node-pre-gyp -v v0.9.0
node-pre-gyp ERR! This is a bug in `node-pre-gyp`.
node-pre-gyp ERR! Try to update node-pre-gyp and file an issue if it does not help:
node-pre-gyp ERR!     <https://github.com/mapbox/node-pre-gyp/issues>
npm WARN alurapic@1.0.0 No description                                                        cript
npm WARN alurapic@1.0.0 No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 6
npm ERR! sqlite3@4.0.0 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 6
npm ERR!
npm ERR! Failed at the sqlite3@4.0.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\user\AppData\Roaming\npm-cache\_logs\2018-08-21T20_01_28_086Z-debug.log
12 respostas

Oii Gabriel, também estou tendo esse erro, vou investigar aqui e avisar o professor do curso!

Parece que é um erro na dependência do sqlite3, a node-pre-gyp, várias pessoas já reportaram estes erros, tanto no repositório do sqlite quanto no node-pre-gyp:

https://github.com/mapbox/node-pre-gyp/issues/413

https://github.com/mapbox/node-sqlite3/issues/1019

Consegui instalar e fazer funcionar, tentando instalar o sqlite3 diretamente:

npm install sqlite3

Depois executei de novo um

npm install

Depois deu certo:

npm start

Veja se funciona pra você! :)

Não corrigiu. Na verdade, agora ele aponta um erro de que não conseguiu encontrar o executável do Python. Segue log de execução do comando "npm install sqlite3" abaixo.

PS C:\Users\user\Tutoriais\Alura\Angular\api> npm install sqlite3
                                                                                              s\user\Tutoriais\Alura
> sqlite3@4.0.2 install C:\Users\user\Tutoriais\Alura\Angular\api\node_modules\sqlite3
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp WARN Pre-built binaries not installable for sqlite3@4.0.2 and node@9.8.0 (node-v59 ABI, unknown) (falling b
ack to source compile with node-gyp)
node-pre-gyp WARN Hit error connect ETIMEDOUT 52.216.104.139:443
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\conf
igure.js:483:19)
gyp ERR! stack     at PythonFinder.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\confi
gure.js:508:16)
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:284:29
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:170:21)
gyp ERR! System Windows_NT 10.0.15063
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node
-gyp\\bin\\node-gyp.js" "configure" "--fallback-to-build" "--module=C:\\Users\\user\\Tutoriais\\Alura\\Angular\\api\\
node_modules\\sqlite3\\lib\\binding\\node-v59-win32-x64\\node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=
C:\\Users\\user\\Tutoriais\\Alura\\Angular\\api\\node_modules\\sqlite3\\lib\\binding\\node-v59-win32-x64" "--napi_ver
sion=2" "--node_abi_napi=napi"
gyp ERR! cwd C:\Users\user\Tutoriais\Alura\Angular\api\node_modules\sqlite3
gyp ERR! node -v v9.8.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\
npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=C:\Users\user\Tutoriais\Alura\Angula
r\api\node_modules\sqlite3\lib\binding\node-v59-win32-x64\node_sqlite3.node --module_name=node_sqlite3 --module_path=C:\
Users\user\Tutoriais\Alura\Angular\api\node_modules\sqlite3\lib\binding\node-v59-win32-x64 --napi_version=2 --node_ab
i_napi=napi' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (C:\Users\user\Tutoriais\Alura\Angular\api\node_modules\node-
pre-gyp\lib\util\compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:180:13)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:936:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5)
node-pre-gyp ERR! System Windows_NT 10.0.15063
node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\user\\Tutoriais\\Alura\\Angular\\api\\nod
e_modules\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd C:\Users\user\Tutoriais\Alura\Angular\api\node_modules\sqlite3
node-pre-gyp ERR! node -v v9.8.0
node-pre-gyp ERR! node-pre-gyp -v v0.10.3
node-pre-gyp ERR! not ok
Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\n
ode-gyp.js configure --fallback-to-build --module=C:\Users\user\Tutoriais\Alura\Angular\api\node_modules\sqlite3\lib\
binding\node-v59-win32-x64\node_sqlite3.node --module_name=node_sqlite3 --module_path=C:\Users\user\Tutoriais\Alura\A
ngular\api\node_modules\sqlite3\lib\binding\node-v59-win32-x64 --napi_version=2 --node_abi_napi=napi' (1)
npm WARN alurapic@1.0.0 No description                                                        cript
npm WARN alurapic@1.0.0 No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sqlite3@4.0.2 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sqlite3@4.0.2 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Gabriel,

de acordo com esta outra dúvida do fórum, parece que algumas versões do Windows pode ter problema com a API: https://cursos.alura.com.br/forum/topico-o-npm-nao-conseguiu-instalar-o-sqlite-65184

e então o professor Flávio fez uma API para estes casos: https://s3.amazonaws.com/caelum-online-public/865-angular/api-windows.zip

Caso, você queira ainda tentar com o esta API que vc baixou, encontrei aqui 2 soluções:

https://stackoverflow.com/questions/21365714/nodejs-error-installing-with-npm

1) "Deletar a pasta $HOME/.node-gyp e tentar novamente" (acredito que seja esta pasta: C:\ProgramFiles\nodejs\node_modules\npm\node_modules\node-gyp)

ou

2) No Powershell com executando como administrador:

npm install --global --production windows-build-tools and then install the package e depois npm install --global node-gyp

veja se te ajuda!! :)

Vanessa,

Tentei usar a api desenvolvida pra ajudar nesse problema antes de abrir o tópico, mas acontece o mesmo erro ao tentar instalar o npm. Tentei agora rodar o comando do sqlite3 nessa outra api, mas também não funciona. Não tenho acesso de administrador pois estou numa rede privada/empresarial então as duas soluções que você me apontou também não funcionaram... Estou ficando sem opções aqui.

Uma ideia pode ser você tentar baixar a pasta node_modules em um computador com Windows mesma versão deste seu e copiar num pendrive e passar esta pasta para este computador. Como vc está num computador e rede com limitações, pode ser que seja algo relacionado a isto também :/

Você diz a pasta node_modules que encontramos nesse caminho? C:\ProgramFiles\nodejs\node_modules\npm\node_modulesTambém não tenho acesso à USB do computador.

Não consegui fazer funcionar. Entretanto, como solução paleativa, criei um json-server e estou utilizando um arquivo com os mesmos dados que haviam sido inseridos no sqlite da api disponibilizada aqui. Parece que funciona normalmente.

Gabriel,

No exercício obrigatório do capítulo, como foi dito, eu passo um link com o projeto pré-compilado para ajudar os alunos que por algum motivo estão com problema na hora do npm instalar o Sqlite.

https://cursos.alura.com.br/course/angular-fundamentos/task/38461

Todavia, quando baixar o arquivo, você não pode fazer npm install, basta fazer npm start . Pelo o que eu entendi, você baixou o projeto, mas tentou executar npm install, porém é justamente isso que esse projeto tenta evitar. Então, siga esses passos minuciosamente.

  1. Certifique-se de estar usando a versão do Node 8.X como solicitado pelo curso. Pelo o que eu inferi do seu log, você esta usando a versão 9.X, Jamais use versões ímpares do Node, ok? Tenha certeza de estar con a versão 8.X. Tem que ser a 8.X! Não custa lembrar que todas essas exigências estão no primeiro exercício obrigatório do curso.
  2. Apague os projetos da API que você baixou, inclusive os zips para não se confundir.
  3. Baixe a API aqui https://s3.amazonaws.com/caelum-online-public/865-angular/api-windows.zip
  4. Descompacte o projeto
  5. Execute apenas o comando npm start como instruído no primeiro exercício obrigatório do curso, na parte de alerta para usuários Windows.,

Se o comando não funcionar, favor copiar o log inteiro (mesmo que gigante) do seu terminal (inclusive o comando execute) e cole-o para nós.

No aguardo.

Flavio,

Infelizmente não tenho como instalar outra versão do node. Aqui no ambiente só temos acesso às versões: 5.X e 9.X. Qualquer outra é vetada pela empresa. Executei os demais procedimentos solicitados por você e continuo com o mesmo problema, infelizmente. Vou colar o log só porque foi solicitado, mas acho que vou continuar com o json-server por enquanto para não parar o curso. Segue o log completo.

PS C:\Users\gabrenr\Tutoriais\Alura\Angular\api-windows> npm start

> alurapic@1.0.0 start C:\Users\gabrenr\Tutoriais\Alura\Angular\api-windows
> node server.js

module.js:545
    throw err;
    ^

Error: Cannot find module 'C:\Users\user\Tutoriais\Alura\Angular\api-windows\node_modules\sqlite3\lib\binding\node-v5
9-win32-x64\node_sqlite3.node'
    at Function.Module._resolveFilename (module.js:543:15)
    at Function.Module._load (module.js:470:25)
    at Module.require (module.js:593:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Users\user\Tutoriais\Alura\Angular\api-windows\node_modules\sqlite3\lib\sqlite3.js:4:15
)
    at Module._compile (module.js:649:30)
    at Object.Module._extensions..js (module.js:660:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:501:12)
    at Function.Module._load (module.js:493:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! alurapic@1.0.0 start: `node server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the alurapic@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\user\AppData\Roaming\npm-cache\_logs\2018-08-23T13_43_01_244Z-debug.log
PS C:\Users\user\Tutoriais\Alura\Angular\api-windows>
solução!

Sem o Node 8.X você não conseguirá dar continuidade no curso do Angular, infelizmente. Sem essa versão do Node, você não conseguirá baixar o SQlite específico desta plataforma, porque os autores não suportam outra versão do Node. A boa notícia é que encontramos o problema, que é versão do Node utilizada por você, então, basta atualizar um dia para que funcione.

Nada te impede de usar uma máquina virtual também, mas são opções que, como você disse, precisam de autorização.

Sucesso e bom estudo.