DEV Community

loading...
Cover image for Como rodar scripts paralelamente

Como rodar scripts paralelamente

Evellyn Lima
I'm a frontend developer who is always trying to improve my projects folders structure
Updated on ・2 min read

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
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

É 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\""
}
Enter fullscreen mode Exit fullscreen mode

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

concurrently -n watch-js,watch-css,watch-nod
Enter fullscreen mode Exit fullscreen mode

Isso seria equivalente a:

concurrently "npm run watch-js" "npm run watch-css" "npm run watch-node"
Enter fullscreen mode Exit fullscreen mode

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

{
  ...
  "scripts": {
      "watch-js": "...",
      "watch-css": "...",
      "watch-node": "...",
  },
  ...
}
Enter fullscreen mode Exit fullscreen mode

Pra rodar todos esses scripts podemos simplesmente rodar:

concurrently -n "watch-*"
Enter fullscreen mode Exit fullscreen mode

É 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!


Links úteis

Discussion (0)