Dans Node.js, la méthode child_process.spawn()
est utilisée pour générer un processus enfant. Cette méthode est une partie de l'API child_process
, un module intégré qui fournit des fonctionnalités pour exécuter des commandes dans un processus enfant.
La méthode child_process.spawn()
lance un nouveau processus avec une commande donnée. Elle prend en entrée la commande à exécuter et un tableau contenant tous les arguments à passer à cette commande. Voici un exemple simple :
const { spawn } = require('child_process');
const child = spawn('command', ['arg1', 'arg2']);
Dans cet exemple, child
est un objet ChildProcess
. Ce dernier émet des événements lorsqu'il reçoit des données sur stdout
ou stderr
ou lorsque le processus se termine.
La principale différence entre child_process.spawn()
et les autres méthodes de l'API child_process
, comme exec()
ou fork()
, réside dans le fait que spawn()
n'initialise pas un nouvel interpréteur shell. Par conséquent, vous ne pouvez pas exécuter des commandes directement à partir de spawn()
qui nécessiteraient un interpréteur shell, comme les commandes de redirection de pipeline ou de fichier, à moins de passer { shell: true }
comme deuxième argument à spawn()
.
Il est important de noter que child_process.spawn()
est mieux adapté pour les cas où le processus enfant retourne une grande quantité de données. child_process.exec()
, quant à lui, est préférable quand la taille de la sortie est plus petite, car il tamponne toute la sortie et la renvoie avec le rappel lorsque le processus a terminé.
Finalement, en Node.js, assurez-vous d'utiliser la bonne méthode pour l'exécution de processus enfants en fonction de vos besoins spécifiques.