심볼릭 링크를 '구체화'하는 명령이나 기술이 있습니까? (더 이상 심볼릭 링크가 아니도록 파일을 복사하십시오)

심볼릭 링크를 '구체화'하는 명령이나 기술이 있습니까? (더 이상 심볼릭 링크가 아니도록 파일을 복사하십시오)

나는 사용하고있다레르나다중 패키지 모노레포를 관리합니다.

이는 서로 종속된 여러 패키지에서 작업할 수 있고 코드가 계속 작동하는 내 개발 환경에서 잘 작동합니다.

그러나 프로덕션용으로 이 코드를 작성하는 데 문제가 있습니다.

본질적으로 문제는 코드를 컴파일할 때 다음과 같은 cjs 모듈을 얻게 된다는 것입니다.

   require('some-dependency')

종속성은 node_modules폴더에 심볼릭 링크로 존재하므로 내 개발 환경에서 작동합니다.

그러나 node_modules를 docker 이미지에 복사하려는 경우 Docker는 심볼릭 링크만 무시하므로 이 방법은 작동하지 않습니다.

내가 하고 싶은 것은 node_modules심볼릭 링크를 검사하는 명령을 갖고, 존재하는 경우 모든 파일을 구체적인 파일로 복사하는 것입니다.

이것이 가능한가? 용어는 무엇입니까?

답변1

cp 명령에 역참조 옵션을 추가할 수 있습니다. 역참조하면 cp가 simlink가 아닌 링크된 파일을 복사하게 됩니다.

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

그리고 대안적으로:

cp -L -r node_modules/* dest_dir/

관련 정보