2017-10-13 17 views
1

Je ces 2 commandes dans mes scripts NPMPuis-je exécuter deux commandes de NPM en cours dans 1 terminal de

"scripts": { 
"webpack": "webpack --config webpack.config.js --watch", 
"server": "nodemon server.js", 
} 

Comme vous pouvez le voir, on court webpack chaque fois que j'enregistrer un fichier et une passe juste le serveur avec nodemon donc je n'ai pas à taper "npm start" ou quelque chose du genre à chaque fois que j'enregistre un fichier.

Maintenant, cela fonctionne bien mais j'ai besoin de 2 terminaux toujours ouverts pour l'exécuter et il devient un peu trop de monde sur mon écran.

Et je ne peux pas avoir une commande lirait comme suit:

"start": "npm run webpack && npm run server" 

becase la commande webpack est en cours et ne sera jamais atteindre la deuxième commande.

Y at-il un moyen d'avoir ces deux commandes dans 1 terminal, est-ce même conseillé?

+0

C'est plus compliqué que ça en vaut la peine. Pourquoi ne pas simplement utiliser tmux ou un multiplexeur similaire et les exécuter dans des volets séparés? Si vous êtes sur macos et que vous utilisez iterm2, vous pouvez diviser la fenêtre. – maxhallinan

+0

essayez d'ajouter la commande webpack à la section '" prestart "' et lancez simplement 'node start' –

Répondre

2

Vous pouvez exécuter un processus en arrière-plan avec & (une perluète, pas deux) mais cela vous obligerait à le gérer manuellement, ce qui serait plutôt fastidieux. Pour plus de détails, voir What does ampersand mean at the end of a shell script line?.

Pour ce cas, quelqu'un a construit concurrently, ce qui simplifie l'exécution des processus en parallèle et le suivi de leur sortie.

npm install --save-dev concurrently 

Et votre script start devient:

"start": "concurrently 'npm run webpack' 'npm run server'" 

Si vous voulez faire la sortie un peu plus jolie que vous pouvez donner les processus noms avec -n et couleurs avec -c, par exemple:

"start": "concurrently -n 'webpack,server' -c 'bgBlue.bold,bgGreen.bold' 'npm run webpack' 'npm run server'" 
+0

Merci! fonctionne en même temps comme un charme, vous venez de me sauver la tâche de passer constamment entre les terminaux. – TheGreyBearded