Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Estava tendo o seguinte erro ao iniciar o React

O erro que tinha

events.js:352 throw er; // Unhandled 'error' event ^

Error: spawn cmd ENOENT at Process.ChildProcess.handle.onexit (internal/childprocess.js:269:19) at onErrorNT (internal/child_process.js:467:16) at processTicksAndRejections (internal/process/task_queues.js:82:21) Emitted 'error' event on ChildProcess instance at: at Process.ChildProcess.handle.onexit (internal/childprocess.js:275:12) at onErrorNT (internal/child_process.js:467:16) at processTicksAndRejections (internal/process/task_queues.js:82:21) { errno: -4058, code: 'ENOENT', syscall: 'spawn cmd', path: 'cmd', spawnargs: [ '/s', '/c', 'start', '""', '/b', '"http://localhost:3000"' ] } npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! ceep@0.1.0 start: react-scripts start npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the ceep@0.1.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\Allas\AppData\Roaming\npm-cache_logs\2021-09-22T19_31_49_728Z-debug.log

Como resolvi? Mesmo tendo o npm instalado no pc tanto no global como no meu usuario mesmo ele ainda estava dando erro ao iniciar o react, tentei no pc e no notbook e nada, até que instalei o npm na propria pasta do projeto e iniciou. O comando para instalação do npm é npm install, digite no cmd ou pwsh( powerShell ) e instale o npm na propria pasta do projeto. Não sei se existe outro método para resolução deste problema que tive, mas se tiver outra resolução postem aqui pra mim.

1 resposta
solução!

Olá, Allas! Tudo bem?

Instalar o npm e rodar npm install são duas coisas diferentes.

O npm é um gerenciador de pacotes, pense nele como uma loja de aplicações, mas no lugar de aplicações, temos várias bibliotecas de código-aberto. Precisamos instalar o npm na máquina para poder usá-lo, porque ele é um programa. O comando npm está ligado a vários arquivos que são salvos na sua máquina ao instalar o gerenciador.

O React e todas as outras bibliotecas que compõe um projeto estão disponíveis no npm, em diversas versões. Nós usamos o npm install para instalar a biblioteca em um projeto, essa biblioteca é salva no node_modules, uma pasta especial do projeto. Para instalar o React, por exemplo, podemos fazer npm install react, e a biblioteca será adicionada. Ao mesmo tempo que os arquivos são salvos na pasta, o npm cria uma linha no arquivo package.json, contendo o nome da biblioteca, e a versão que foi instalada. Chamamos essas bibliotecas de dependências.

Como as dependências possuem várias versões que o npm pode baixar, e geralmente vários desenvolvedores trabalham no mesmo projeto, esse arquivo package.json serve para guardar quais dependências são necessárias para rodar o projeto, e quais as versões.

Quando subimos um projeto para o GitHub, GitLab ou BitBucket, nós não subimos a pasta node_modules, pois é muito pesada. Assim, quando uma pessoa baixa o projeto pelo Git, ela precisa instalar todas as dependências do projeto. Ela pode fazer isso com npm install, sem nenhum nome de biblioteca, e o npm irá ler o package.json e instalar todas as dependências nas versões especificadas.

Resumindo:

  • O npm é um programa que gerencia pacotes, ele possui sua própria node_modules, mas geralmente instalamos os pacotes apenas nos projetos.
  • Os pacotes em si precisam ser instalados se forem usados pelo projeto, se você baixou o projeto, provavelmente não tem a node_modules do projeto e consequentemente terá erros.
  • Se você rodar npm install o npm verifica quais pacotes foram instalados no projeto em outras máquinas e que precisam ser instalados na sua.

O que pode ter acontecido é que houve algum erro na geração do seu projeto, que é feita pelo Create React App. Internamente, ele roda o npm e instala as dependências. Ao rodar npm install, caso alguma dependência tenha sido salva no package.json mas não foi baixada no node_modules, ela foi baixada corretamente.

Achei importante fazer essa observação para não gerar dúvidas no futuro.

Caso o problema ocorra de novo, não hesite em recorrer ao fórum! Bons estudos!