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

O comando nodemon não funcionou.

Após rodar o comando npm install nodemon, eu executei, conforme a aula, nodemon app.js mas apareceu nodemon : O termo 'nodemon' não é reconhecido como nome de cmdlet.

Há alguma solução que pode ser executada? Como corrigir?

Como solução de contorno eu executei manualmente node .\node_modules\nodemon\bin\nodemon.js .\App.js

6 respostas

O nodemon é um comando que não precisa passar o arquivo. Por exemplo, no terminal você roda apenas nodemon e ele starta a aplicação.

No package.json, você pode colocar um script nodemon e colocar "node app.js".

Você pode instalar globalmente o nodemon também.

npm i nodemon -g

Mesmo executando a solução proposta, ainda não é possível executar diretamente o nodemonMeu package.json

{
  "name": "app-02",
  "version": "1.0.0",
  "description": "Aplicação Servidor de Dados",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Henrique Ribeiro",
  "license": "ISC",
  "dependencies": {
    "express": "^4.18.2",
    "nodemon": "^2.0.22"
  }
}
solução!

"scripts": { "test": "echo "Error: no test specified" && exit 1", "nodemon": "node index.js" },

adiciona essa parte no teu package.json no lugar do scripts

Em relação a instalação global do nodemon, tenta abrir o terminal fora da pasta do projeto e executa o comando novamente.

Não sei se da primeira vez você já tinha digitado assim.. mas o correto é nodemon e não nodemon.js. Esse comando só irá funcionar caso você faça a instalação do nodemon globalmente com npm i nodemon -g, e após instalar você deve fechar e abrir o terminal novamente para pegar atualização do 'PATH'.

E não é necessário instalar de forma global, o interessante é sempre que possível instalar localmente, até mesmo pro package.json mostrar todas as dependências utilizadas, se fosse pra mudar algo você poderia ter instalado apenas como dependência de desenvolvimento, com npm i nodemon -D, só que para funcionar dessa forma você tem que adicionar um script no package.json como Luís falou, com uma pequena correção, o correto seria algo como

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "nodemon App.js"
  },

aí você rodaria no terminal utilizando npm run dev, o dev é o 'nome' do script, você pode por qualquer nome e executar com npm run, nesse formato aqui.

Imagem do terminal com comando npm run dev:nodemon e a inicialização do pacote

e no meu package.json está assim

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "tsx watch src/index.ts",
    "dev:nodemon": "nodemon App.js"
  },

Pode ignore o "dev": "tsx watch src/index.ts", foi porque utilizei um projeto que já tinha aqui aberto, no caso eu usei o comando npm run dev:nodemon que foi esse o nome que eu dei pro script.

Separei os tópicos.

Para resumir, no seu package.json está assim

{
  "name": "app-02",
  "version": "1.0.0",
  "description": "Aplicação Servidor de Dados",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Henrique Ribeiro",
  "license": "ISC",
  "dependencies": {
    "express": "^4.18.2",
    "nodemon": "^2.0.22"
  }
}

e você deve colocar algo como

{
  "name": "app-02",
  "version": "1.0.0",
  "description": "Aplicação Servidor de Dados",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "nodemon App.js"
  },
  "author": "Henrique Ribeiro",
  "license": "ISC",
  "dependencies": {
    "express": "^4.18.2",
    "nodemon": "^2.0.22"
  }
}

atente a vírgula após o primeiro script e adicione o script pra rodar o nodemon, você também pode remover o test

{
  "name": "app-02",
  "version": "1.0.0",
  "description": "Aplicação Servidor de Dados",
  "main": "index.js",
  "scripts": {
    "dev": "nodemon App.js"
  },
  "author": "Henrique Ribeiro",
  "license": "ISC",
  "dependencies": {
    "express": "^4.18.2",
    "nodemon": "^2.0.22"
  }
}