Estoy usandolernapara gestionar un monorepo multipaquete.
Funciona bien en mi entorno de desarrollo, donde puedo trabajar en varios paquetes que dependen entre sí y el código sigue funcionando.
Sin embargo, tengo algunos problemas al crear este código para producción.
Básicamente, el problema es que, cuando compilo mi código, obtengo algunos módulos cjs que tienen
require('some-dependency')
La dependencia existirá como un enlace simbólico en la node_modules
carpeta y así funciona en mi entorno de desarrollo.
Sin embargo, si quiero copiar node_modules en una imagen de Docker, esto no funcionará, ya que Docker simplemente ignora los enlaces simbólicos.
Lo que me gustaría hacer es tener un comando que inspeccione node_modules
los enlaces simbólicos y, si existen, simplemente copie todos los archivos para que sean archivos concretos.
es posible? ¿Cuál es la terminología?
Respuesta1
Puede agregar la opción de desreferencia al comando cp. La desreferencia hará que cp copie el archivo vinculado en lugar del enlace sim.
cp --dereference --recursive node_modules/* dest_dir/
Y alternativamente:
cp -L -r node_modules/* dest_dir/