Tengo tres paquetes:
A , depende de CB , depende de CC Al usar lerna run build , C compila antes que A y B (¡bien!)
Pero cuando empiezo una tarea de vigilancia lerna run watch , C nunca se completa y, por lo tanto, A y B no se vigilan.
El uso lerna run watch --parallel inicia A , B y C al mismo tiempo, pero A y B arrojan un error porque no pueden encontrar la carpeta dist de C (que C acaba de eliminar antes de reconstruir).
¿Hay alguna manera de iniciar las tareas de observación pero aún así mantener el orden de las dependencias como lo hace normalmente la ejecución? ¿O al menos retrasar algunos otros?
Actualización: según el comentario, creo que ahora entiendo lo que está sucediendo. Si tiene dependencias de compilación, deben ubicarse en el mismo subproceso, no en subprocesos concurrentes, es decir, deben compilarse secuencialmente.
Sin embargo, todavía puede probarlo... usando la opción
--noCleanen su compilación, ¡ no eliminará las carpetas dist! Entonces se ejecutará su compilación paralela.
Tres configuraciones : configuraría / verificaría dos veces (no enumeró su package.json ), para que lerna sepa qué orden seguir
peerDependenciesdevDependenciespackage.json ,... Los globs definidos son relativos al directorio en el que vive lerna.json , que suele ser la raíz del repositorio. La única restricción es que no puede anidar directamente las ubicaciones de los paquetes, pero esta es una restricción que también comparten los paquetes npm "normales". Y así... los paquetes de hojas en paquetes/* se consideran una "mejor práctica"
Finalmente, el orden topológico será ejecutado por el usuario por lerna run en la compilación, puede obligarlo a incluir las dependencias --include-dependencies / o --include-dependents flag según sea necesario, así
Opción alternativa 2: por ahora, para pasar, puede hacer...
lerna run build --concurrency 1Según tengo entendido, sus trabajos de observación en a y b no están observando los módulos del nodo, especialmente la dependencia c inyectada, y ese resultado de este comportamiento.
Tal vez si agrega esos directorios a su trabajo de vigilancia, podría encontrar una solución alternativa eficiente.