Este post é sobre a utilização da biblioteca Wireit em conjunto com scripts NPM.
NPM Scripts
NPM é um gerenciador de pacotes bem conhecido no mundo JavaScript. E através dele, conseguimos configurar scripts que nos ajudam durante o processo de desenvolvimento, testes e build das nossas aplicações.
Por exemplo, no arquivo package.json podemos definir uma série de comandos para build, execução e verificação de tipos:
{
  "name": "testing-wireit"
  "scripts": {
    "build": "next build",
    "start": "next start",
    "typecheck": "tsc"
  },
  "dependencies": {
    "next": "latest",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
  }
}
Com isso, ao executar o comando npm run build o NPM irá não somente executar o comando equivalente, mas também irá executá-los utilizando as bibliotecas instaladas localmente no nosso projeto.
Usando NPM Scripts com Wireit
Wireit é uma ferramenta do Google que roda em conjunto com os NPM scripts e torna esses scripts mais eficientes e inteligentes. Algumas features e vantagens do Wireit incluem:
- Utilizar os comandos 
npm runque você já conhece; - Executa automaticamente as dependências entre os scripts NPM em paralelo;
 - Assiste qualquer script e o executa continuamente em caso de alterações;
 - Armazena os resultados em cache local e remoto
 - Possui um plugin do VSCode que oferece sugestões, documentação e avisos enquanto você desenvolve novos scripts ou mantém scripts pré-existentes
 
Bom, com isso em mente, vamos para um exemplo prático. Após instalar o Wireit como dependência de desenvolvimento:
npm run install wireit -D
Podemos fazer algumas alterações no nosso package.json para utilizar o Wireit definitivamente no nosso projeto:
{
  "name": "testing-wireit"
  "scripts": {
    "build": "wireit",
    "start": "wireit",
    "typecheck": "wireit"
  },
  "wireit": {
    "build": {
      "command": "next build",
    },
    "start": {
      "command": "next start",
      "dependencies": ["build"] # exemplo de dependencia entre scripts
    },
    "typecheck": {
      "command": "tsc"
    }
  },
  // ...
}
Após essas alterações, é possível utilizando meus scripts normalmente.
Não esqueça de adicionar a pasta gerada pelo wireit no seu arquivo .gitignore.
echo .wireit >> .gitignore
Scripts em paralelo
O Wireit executa scripts em paralelo por padrão. Inicialmente, ele irá executar até 2 scripts por vez para cada core de CPU lógico detectado no seu sistema. A quantidade desses scripts também irá depender do seu mapa de dependencias.
Se você necessitar configurar um numero diferente, ele disponibiliza a variável de ambiente WIREIT_PARALLEL para determinar o numero de scripts a serem executados em paralelo.
export WIREIT_PARALLEL=4
Para entender mais sobre como rodar scripts NPM em paralelismo, veja a documentação oficial aqui.
