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

npm run start ERRO

Olá,

Mais um dúvida. Meu npm run start não roda. Dá esse erro:

[0] Error occurred when executing command: npm run watch
[0] Error: spawn cmd.exe ENOENT
[0]     at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)       
[0]     at onErrorNT (node:internal/child_process:478:16)
[0]     at processTicksAndRejections (node:internal/process/task_queues:83:21)
[1] Error occurred when executing command: npm run server
[1] Error: spawn cmd.exe ENOENT
[1]     at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)       
[1]     at onErrorNT (node:internal/child_process:478:16)
[1]     at processTicksAndRejections (node:internal/process/task_queues:83:21)
[1] npm run server exited with code -4058
[0] npm run watch exited with code -4058

npm run watch e npm run server funcionam.

npm run server na verdade preciso clicar no link, só digitando igual ao professor faz, não funciona:

PC - GIOVANNA@GIOVANA MINGW64 ~/Desktop/TypeScript/typescript-curso-1-arquivos-iniciais (main)
$ npm run server
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

> alurabank@1.0.0 server
> lite-server --baseDir=dist

Did not detect a `bs-config.json` or `bs-config.js` override file. Using lite-server defaults...
** browser-sync config **
{
  injectChanges: false,
  files: [ './**/*.{html,htm,css,js}' ],
  watchOptions: { ignored: 'node_modules' },
  server: {
    baseDir: 'dist',
    middleware: [ [Function (anonymous)], [Function (anonymous)] ]
  }
}
[Browsersync] Access URLs:
 --------------------------------------
       Local: http://localhost:3000
    External: http://192.168.1.104:3000
 --------------------------------------
          UI: http://localhost:3001
 UI External: http://localhost:3001
 --------------------------------------
[Browsersync] Serving files from: dist
[Browsersync] Watching files...
[Browsersync] Couldn't open browser (if you are using BrowserSync in a headless environment, you might want to set the open option to false)

Quando tento rodar o npm run start dá erro.

package.json:

{
  "name": "alurabank",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "server": "lite-server --baseDir=dist",
    "start": "concurrently \"npm run watch\" \"npm run server\"",
    "compile": "tsc",
    "watch": "tsc -w"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "concurrently": "^6.0.0",
    "lite-server": "^2.6.1",
    "typescript": "^4.2.2"
  }
}

tsconfig.json:

{
    "compilerOptions": {
        "outDir": "dist/js",
        "target": "ES6",
        "noEmitOnError": true
    },
    "include": ["app/**/*"]
}
2 respostas
solução!

Olá!

Pelo que vi são 2 problemas isolados.

Não tenho a solução mas posso ajudar no raciocínio:

Sobre o navegador não abrir: O problema que você está enfrentando é que o Browsersync, que é usado pelo lite-server, não conseguiu abrir automaticamente o navegador ao executar npm run server. O erro específico é:

[Browsersync] Couldn't open browser (if you are using BrowserSync in a headless environment, you might want to set the open option to false)

Este erro indica que o Browsersync tentou abrir o navegador padrão, mas não conseguiu fazê-lo. Eu consegui simular o mesmo erro quando editei o arquivo config-defaults.js que está em nodemodules\lite-server\lib\config-defaults.js e adicionei o seguinte trecho:

  browser: "msedge.exe", // Inicia o browser Edge ao invés do padrão do sistema

Fazendo isso o browsesync inicia o browser "edge" ao invés do meu navegador padrão. Maaas, se eu errar (que foi o que houve na primeira tentativa) o nome e ao invés de msedge.exe eu escrever um nome não localizado pelo sistema, ai meu navegador não abre e o terminal apresenta a mesma mensagem de erro "[Browsersync] Couldn't open browser[...]" De qualquer forma quando seleciono um navegador válido ele abre assim que rodo o comando e atualiza a cada salvar que o visual studio code aplica.

Existem algumas possíveis soluções para esse problema:

Tente com um navegador diferente: Às vezes, problemas com o navegador padrão podem causar esse tipo de erro. Tente definir um navegador específico para o Browsersync abrir. Lembre-se de usar o nome correto do navegador :P

Desative extensões do navegador momentaneamente: Extensões do navegador, como bloqueadores de anúncios, podem interferir na capacidade do Browsersync de abrir o navegador automaticamente. Tente desativar temporariamente as extensões do navegador ou usar um perfil de navegador limpo para testar.

Verifique configurações do sistema: Verifique se não há configurações de segurança ou restrições no sistema que estejam impedindo o Browsersync de abrir o navegador. Em ambientes altamente restritivos, isso pode acontecer.

Sobre o outro problema:

O script "start" está configurado para executar dois comandos em paralelo usando o pacote concurrently: npm run watch e npm run server. O erro se refere a uma tentativa de executar cmd.exe (o prompt de comando), que resultou em um erro "ENOENT". Esse erro é comum e significa "Erro de arquivo ou diretório não encontrado". Isso pode estar acontecendo por alguns motivos como: Caminho incorreto, permissão de usuário e etc...

Pesquisando encontrei essa solução:

https://stackoverflow.com/questions/51175304/error-on-running-npm-run-dev

Lá há uma resposta que dá a seguinte dica:

Eu tive um problema semelhante e o que fiz foi ir para as variáveis de ambiente do meu sistema e definir as variáveis do sistema que podem ter sido excluídas por engano.

Variable name = PATH

Variable value = C:\Windows\System32\

Vá em > Control Panel\System and Security\System\Advance system setting\Enviroment variable e configure as variáveis do sistema nome PATH e caminho C:\Windows\System32\ e reinicie seu computador.

Eu localizei essa configuração simplesmente digitando "variáv" no menu de pesquisa do windows.

Oi Marcos, tudo bem?

Muito obrigada! Deu certo!