Como executar o script de inicialização com o Nodemon

92

Como posso executar o script de inicialização de um arquivo package.json com o Nodemon?

Citronen
fonte
Tem certeza de que pode executar um script de início de package.json? Porque pelo que eu sei, package.json é para listar todas as suas dependências e nodemon é para manter seu processo em execução. Não tenho certeza do que você está sugerindo aqui.
Saras Arya

Respostas:

142

Este será um comando simples para este

nodemon --exec npm start
Ashutosh Jha
fonte
E se eu precisar executar apenas testes sem executar o aplicativo? Sua solução executa ambos.
Sergey
1
isso é executado, npm startmas não inicia o servidor de nó para mim .. como ele saberia onde server.js está?
Sonic Soul de
41

No pacote json:

{
  "name": "abc",
  "version": "0.0.1",
  "description": "my server",
  "scripts": {
    "start": "nodemon my_file.js"
  },
  "devDependencies": {
    "nodemon": "~1.3.8",
  },
  "dependencies": {

  }
}

Então, a partir do terminal, você pode usar npm start

Instalação do Nodemon: https://www.npmjs.com/package/nodemon

Murat Ozgul
fonte
1
Desculpe, estou procurando uma maneira de executar o script de inicialização com o nodemon, não executar o nodemon no script de inicialização. Desculpe se não ficou claro.
Citronen
6
Não vai npm startfalhar na produção por falta de nodemon?
ripper234
2
npm run startnãonpm start
M. Dhaouadi
1
Sou um iniciante com npm. Não entendo por que precisamos especificar o script de início enquanto podemos usar o nodemon pronto para uso? Acabei de instalar o nodemon com o npm e usá-lo diretamente sem especificar nenhum script e funciona perfeitamente.
Hokhy Tann,
@ M.Dhaouadi npm starté um alias denpm run start
George
18

Eu tenho um arquivo TypeScript chamado "server.ts", os scripts npm a seguir configuram o Nodemon e o npm para iniciar meu aplicativo e monitorar quaisquer alterações nos arquivos TypeScript:

"start": "nodemon -e ts  --exec \"npm run myapp\"",
"myapp": "tsc -p . && node server.js",

Já tenho o Nodemon nas dependências. Quando eu executar npm start, ele pedirá ao Nodemon para monitorar seus arquivos usando o -eswitch e então chamará o myappscript npm, que é uma combinação simples de transpilar os arquivos typescript e iniciar o server.js resultante. Quando eu mudo o arquivo TypeScript, por causa da -etroca o mesmo ciclo acontece e novos arquivos .js serão gerados e executados.

MehranTM
fonte
15

Eu uso o Nodemon versão 1.88.3 no meu projeto Node.js. Para instalar o Nodemon, consulte https://www.npmjs.com/package/nodemon .

Verifique seu package.json, veja se "scripts" mudou assim:

  "scripts": {
    "dev": "nodemon server.js"
  },

server.jsé o meu nome de arquivo, você pode usar outro nome para este arquivo como app.js.

Depois disso, execute isto em seu terminal: npm run dev

Sukma Saputra
fonte
8

Use -exec:

"your-script-name": "nodemon [options] --exec 'npm start -s'"
KeatsPeeks
fonte
Existe alguma maneira diferente de exec para fazer isso?
Citronen
Apenas nodemon [options] --exec 'npm start -s'se você quiser fazer na linha de comando.
nathanhleung
@ArnoldRoa Instale.
Константин Ван
5

Primeiro mude seu arquivo package.json ,

"scripts":
    { 
        "start": "node ./bin/www",
        "start-dev": "nodemon ./app.js"
    },

Depois disso, execute o comando

npm run start-dev
Rkeshri
fonte
1
Mas quando você foge de app.jsvocê está contornando tudo o que ./bin/wwwfaz ...
Jake Wilson
1
esta aba nova cada vez
Qui-Gon Jinn
5

No arquivo package.json. mudar arquivo assim

"scripts":{ 
   "start": "node ./bin/www", 
   "start-dev": "nodemon ./app.js"
 },

e então execute npm run start-dev

Sohail Ahmad
fonte
2

Na embalagem json:

"scripts": {
  "start": "node index",
  "dev": "nodemon index"
},

"devDependencies": {
  "nodemon": "^2.0.2"
}

E no terminal de desenvolvimento:

npm run dev

E para iniciar o servidor regularmente:

npm start
amixOV
fonte
O que é "regiuler" ? Você quer dizer "regular" ?
Peter Mortensen
1

Você também pode instalar o nodemon globalmente para uso frequente:

npm i nodemon -g ou sudo npm i nodemon -g

em seguida, edite seu package.json:

  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },

Geralmente, 'dev' especifica o uso de desenvolvimento ( npm run dev ).

dhahn
fonte
1

Dependerá dos tipos de instalação do Nodemon. Se você instalar o Nodemon globalmente usando comandos ( npm install nodemon --globalou npm install nodemon -g), não precisará especificar nenhum script para o Nodemon no arquivo package.json . Apenas executando o comandonodemon index.js executará seu projeto.

Mas se você instalar o Nodemon localmente por comando npm install nodemon, terá que especificar o script. Se você nomeá-lo como start, então npm run startou npm startfará com que o servidor seja executado.

// Absolutely no need for global installation
 "scripts": {
    "start": "nodemon index.js"
  }
senhor
fonte
1

Se você nodemoninstalou globalmente, simplesmente executando nodemonem seu projeto executará automaticamente o startscript de package.json.

Por exemplo:

"scripts": {
  "start": "node src/server.js"
},

Da documentação do nodemon :

O nodemon também pesquisará pela propriedade scripts.start em package.json (a partir de nodemon 1.1.x).

Alf Eaton
fonte
-1

Para evitar uma instalação global, adicione Nodemon como uma dependência e ...

package.json

"scripts": {
    "start": "node ./bin/www",
    "start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
  },
zipzit
fonte
Você ainda pode torná-lo "start-dev": "nodemon ./bin/www" se você instalá-lo em devDependencies
WoLfPwNeR