Есть ли команда или техника для «конкретизации» символических ссылок? (Скопируйте файлы, чтобы они больше не были символической ссылкой)

Я использую lerna для управления многопакетным монорепо.

Это хорошо работает в моей среде разработки, где я могу работать с несколькими пакетами, которые зависят друг от друга, и код продолжает работать.

Однако, я столкнулся с некоторыми проблемами при создании этого кода для производства.

По сути, проблема в том, что когда я компилирую свой код, я получу несколько модулей cjs, которые имеют

   require('some-dependency')

Зависимость будет существовать как символическая ссылка в папке node_modules и так работает в моей среде разработки.

Однако, если я хочу скопировать node_modules в образ докера, это не сработает, так как Docker просто игнорирует символические ссылки.

То, что я хотел бы сделать, - это иметь команду, которая проверяет node_modules на наличие символических ссылок, и если они существуют, то просто скопируйте все файлы в конкретные файлы.

Возможно ли это? Какая терминология?

0
задан 24 May 2019 в 05:06

1 ответ

Вы можете добавить опцию разыменования в команду cp. Разыменование приведет к тому, что cp скопирует связанный файл, а не simlink.

cp --dereference --recursive node_modules/* dest_dir/

И в качестве альтернативы:

cp -L -r node_modules/* dest_dir/
0
ответ дан 24 May 2019 в 05:06

Другие вопросы по тегам:

Похожие вопросы: