Estoy construyendo un backend de microservicio con lerna , paquete y ventana acoplable. Tengo varios microservicios, cada uno de los cuales se basa en un código común en un paquete "comunes" en el monorepo.
Este paquete de bienes comunes nunca se publica en NPM. Por lo tanto, funciona bien en el desarrollo, pero tan pronto como intento construir los contenedores acoplables, el módulo común no está disponible dentro de los contenedores.
¿Hay alguna forma de decirle a la parcela que externalice todas las dependencias (como lo hace de forma predeterminada en nodejs) excepto el paquete común? es posible?
Puede marcar un paquete en particular para incluirlo en el paquete mediante la opción includeNodeModules . Por ejemplo, en el package.json del proyecto que desea generar un paquete que incluya un paquete commons en lugar de simplemente hacer referencia a él, tendría:
{ "main": "dist/index.js" // Or wherever you want to put the bundle. "targets": { "main": { "includeNodeModules": ["commons"] } } } Para paquetes que se dirigen a nodejs (por ejemplo, paquetes de "biblioteca"), esta opción es false de forma predeterminada para cada dependencia (por ejemplo, todas las dependencias se "externalizarán", excepto lo que puso en esta lista, exactamente lo que solicitó anteriormente).
(Esto supone que está utilizando Parcel 2+; asegúrese de hacer referencia a "parcel": "^2.0.1" y no parcel-bundler (que es la versión obsoleta v1)).