Ich benutzelernaum ein Multipaket-Monorepo zu verwalten.
Es funktioniert gut in meiner Entwicklungsumgebung, wo ich an mehreren Paketen arbeiten kann, die voneinander abhängig sind, und der Code trotzdem weiter funktioniert.
Ich habe jedoch einige Probleme, diesen Code für die Produktion zu erstellen.
Das Problem besteht im Wesentlichen darin, dass ich beim Kompilieren meines Codes einige CJS-Module erhalte, die
require('some-dependency')
Die Abhängigkeit wird als symbolischer Link im node_modules
Ordner vorhanden sein und funktioniert daher in meiner Entwicklungsumgebung.
Wenn ich jedoch node_modules in ein Docker-Image kopieren möchte, funktioniert dies nicht, da Docker symbolische Links einfach ignoriert.
Ich hätte gern einen Befehl, der node_modules
nach symbolischen Links sucht und, falls vorhanden, einfach alle Dateien in konkrete Dateien kopiert.
Ist das möglich? Wie lautet die Terminologie?
Antwort1
Sie können dem cp-Befehl die Option „Dereferenzierung“ hinzufügen. Durch die Dereferenzierung kopiert cp die verknüpfte Datei und nicht den Simlink.
cp --dereference --recursive node_modules/* dest_dir/
Und alternativ:
cp -L -r node_modules/* dest_dir/