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 run
que 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.