Evellyn Lima

Como rodar scripts paralelamente

June 21, 2021

Quando configuramos alguns scripts pra rodarem no pre-commit/pre-push nosso tempo de desenvolvimento pode acabar sendo afetado pela demora pra executar essas tarefas, mas a gente consegue também diminuir esse tempo de espera rodando tarefas em paralelo.

Com o pacote concurrently nós conseguimos rodar vários scripts paralelamente, e pra fazer isso é bem simples, primeiro instalamos o pacote:

npm i concurrently

Com isso temos o pacote instalado no nosso projeto, agora pra rodar os scripts ao mesmo tempo é só executar o comando:

concurrently "command1 arg" "command2 arg"

É importante colocar os comandos dentro de aspas duplas pq se não colocarmos seriam executados 4 comandos: command1, arg, command2 e arg.

Podemos então configurar esse comando dentro do nosso package.json:

{
	"start": "concurrently \"command1 arg\" \"command2 arg\""
}

Quando o comando que quisermos executar for um comando npm nós podemos usar flag -n:

concurrently -n watch-js,watch-css,watch-nod

Isso seria equivalente a:

concurrently "npm run watch-js" "npm run watch-css" "npm run watch-node"

Além disso, podemos também executar vários comandos que comecem com um mesmo prefixo:

{
  ...
  "scripts": {
      "watch-js": "...",
      "watch-css": "...",
      "watch-node": "...",
  },
  ...
}

Pra rodar todos esses scripts podemos simplesmente rodar:

concurrently -n "watch-*"

É importante ganharmos tempo no nosso dia a dia, e rodando alguns scripts paralelamente é uma maneira simples de fazermos isso, então se você tem algum projeto que leva muito tempo pra rodar alguns comandos, talvez valha a pena estudar se essa solução se encaixa pro seu caso!

Você pode ver esses exemplos e mais alguns nessa página do pacote: NPM concurrently


Eu sou a Evellyn Lima, desenvolvedora web [por acaso] desde 2014 e a favor de JS sem ponto e vírgula.
Twitter LinkedIn