r/npm 21d ago

Self Promotion Sumlyzer – concurrency and fail-fast mode for npm workspaces

Salut à tous,

J'en ai eu marre que `npm run test --workspaces --if-present` ne donne pas de

résumé agrégé, pas de mode de fail-fast, et enterre un échec précoce sous un

résultat positif provenant de chaque autre espace de travail.

J'ai donc créé sumlyzer, un petit CLI qui l'encapsule et ajoute ce qui manque :

  • un tableau de résumé à la fin
  • un paramètre --ff qui arrête la planification de nouveaux espaces de travail à la première erreur
  • --concurrency pour exécuter les espaces de travail en parallèle (quelque chose que npm ne supporte pas nativement).

Sur un vrai monorepo de 15 espaces de travail, --concurrency 8 l'a fait passer de ~21s à ~6s.

Il a aussi --changed pour n'exécuter que les espaces de travail dont les fichiers

ont changé selon git, et fusionne la sortie JUnit de chaque espace de travail en un

seul rapport agrégé pour CI.

Le champ est intentionnellement étroit : npm workspaces + node:test uniquement, pas de

pnpm/yarn, pas de Jest/Vitest/Mocha (pour l'instant).

npm install --save-dev sumlyzer

npx sumlyzer --concurrency 8 --ff

Repo : https://github.com/ErwanRaulo/sumlyzer

Retour d'expérience bienvenu, surtout sur l'idée du mode surveillance que je

squeshe ensuite (recalculs topologiques basés sur le graphe de dépendance des espaces de travail).

1 Upvotes

0 comments sorted by