npm Scripts vs Make: Executando Tarefas do Projeto
Os npm scripts definem tarefas em package.json dentro do ecossistema Node; o Make é uma ferramenta de build agnóstica de linguagem com rastreamento de dependências.
Os npm scripts ficam em package.json e são a forma natural de rodar comandos de build, teste e lint em projetos JavaScript, com acesso aos binários instalados localmente. O Make é neutro em relação à linguagem, rastreia dependências de arquivos e pode orquestrar tarefas entre muitas ferramentas e linguagens, mas sua sintaxe sensível a tabs e as diferenças de shell podem confundir iniciantes. Os npm scripts são convenientes para repositórios centrados em JS; o Make serve a projetos poliglotas ou com grafos de build pesados.
| npm scripts | Make | |
|---|---|---|
| Ficam em | package.json | Makefile |
| Ecossistema | Node / npm | Agnóstico de linguagem |
| Rastreamento de dependências | Nenhum | Timestamps de arquivos |
| Binários locais | Automático no PATH | Caminhos manuais |
| Melhor para | Projetos JS/TS | Poliglota, grafos de build |
No CI
Para um repositório JavaScript ou TypeScript, os npm scripts mantêm as tarefas junto das dependências e simplesmente funcionam no CI. O Make é melhor quando você orquestra múltiplas linguagens ou precisa de builds incrementais de verdade. Alguns times usam npm scripts como ponto de entrada JS e um Makefile ou task runner para coordenar o projeto mais amplo.
Acelere
Faça cache do node_modules (ou do store do gerenciador de pacotes) e de quaisquer saídas de build para que as tarefas comecem aquecidas. Ambos rodam em runners de CI; runners gerenciados mais rápidos encurtam as etapas de install, build e teste.
O veredito
Trabalhar em um projeto JavaScript ou TypeScript: os npm scripts são a escolha natural e conveniente. Orquestrar múltiplas linguagens ou precisar de builds cientes de dependências: Make. Muitos repositórios combinam os dois - npm scripts para tarefas JS, Make para a coordenação entre linguagens.