나는 사용하고있다레르나다중 패키지 모노레포를 관리합니다.
이는 서로 종속된 여러 패키지에서 작업할 수 있고 코드가 계속 작동하는 내 개발 환경에서 잘 작동합니다.
그러나 프로덕션용으로 이 코드를 작성하는 데 문제가 있습니다.
본질적으로 문제는 코드를 컴파일할 때 다음과 같은 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/