Digamos que queremos replicar parte de la funcionalidad que tiene npm , es decir, queremos saber si node_modules está sincronizado con el estado actual de package.json y package-lock.json , de modo que, si no es así, inicie npm ci (si posible también programáticamente). Esencialmente, no queremos incurrir en la penalización de ejecutar npm ci (que puede demorar varios segundos), sino hacer algo un poco menos simple que verificar la fecha de node_modules contra package.json .
Revisé las dependencias de npm y no parece haber ninguna que tenga esa lógica. arborist está más relacionado con las dependencias y su almacenamiento, pacote se ocupa de los paquetes. Entonces debe ser algo en npm mismo. Además, de acuerdo con esta respuesta , no deberíamos intentar ejecutar npm desde fuera de la CLI, por lo que me pregunto si ese tipo de lógica (que probablemente se usa en otros lugares, como yarn o grunt) está disponible en algún otro paquete.
Al final del día, quiero una lógica similar a la que usa make : actualizar cosas si las dependencias posteriores han cambiado de alguna manera. node_modules vs. package.json es un ejemplo... Pero podría haber casos de uso en los que también lo necesitaríamos. Al final del día, lo que estoy buscando son módulos node.js listos para usar que me ayuden a crear una herramienta similar a make en JavaScript.