я используюлернадля управления многопакетным монорепозиторием.
Это хорошо работает в моей среде разработки, где я могу работать над несколькими пакетами, которые зависят друг от друга, и код продолжает работать.
Однако у меня возникли некоторые проблемы при создании этого кода для производства.
По сути, проблема в том, что когда я компилирую свой код, я получаю некоторые модули cjs, которые имеют
require('some-dependency')
Зависимость будет существовать в виде символической ссылки в node_modules
папке и поэтому работает в моей среде разработки.
Однако если я хочу скопировать node_modules в образ Docker, это не сработает, поскольку Docker просто игнорирует символические ссылки.
Мне бы хотелось иметь команду, которая проверяет node_modules
наличие символических ссылок и, если они существуют, просто копирует все файлы в конкретные файлы.
Возможно ли это? Какова терминология?
решение1
Вы можете добавить опцию разыменования к команде cp. Разыменование заставит cp скопировать связанный файл, а не симлинк.
cp --dereference --recursive node_modules/* dest_dir/
И альтернативно:
cp -L -r node_modules/* dest_dir/