¿Existe algún comando o técnica para "concretar" enlaces simbólicos? (Copia los archivos para que ya no sean un enlace simbólico)

¿Existe algún comando o técnica para "concretar" enlaces simbólicos? (Copia los archivos para que ya no sean un enlace simbólico)

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_modulescarpeta 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_moduleslos 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/

información relacionada