노드 패키지 npm 또는 yarn을 사용할 때
package-lock.json 또는
yarn.lock 파일이 자동으로 생성됩니다. 그런데
만약 yarn.lock을 package-json.lock으로... 아니면 반대로 package-json.lock 파일을 yarn.lock 파일로 변환하고 싶습니다. 어떻게 하면 가능할까요?
[참고] 변경 사유는?
변경을 원하는 이유는 평소에 npm을 사용하는데 peer dependency 버전 이슈가 많아 yarn을 사용하면 더 편리할 것 같아 변경하려고 했습니다. yarn 설치를 위해서 package-lock.json을 yarn.lock으로 변환해 설치하면 좋을 것 같아 아래의 방법을 사용하여 적용했습니다. 그럼 자세한 방법을 알아봅니다.
! yarn.lock package-lock.json 파일을 서로 변환하는 방법
간단한 방법은
synp를 설치해 커맨드라인에서 사용하는 방법입니다. 설치 및 사용 방법은 아주 간단합니다. 먼저 synp를 설치합니다.
> yarn global add synp
or
> npm install -g synp
global로 설치해 cli 명령어를 사용하도록 합니다. 이제 원하는 lock 타입으로 변환할 수 있습니다. 각각 아래와 같이 수행합니다. 참고로
이미 파일이 존재하면 에러가 발생하므로 삭제하거나 이름을 변경해두어야 합니다.
@ package.json 파일에서 yarn.lock 생성하기
소스 파일이 pacakge-lock.json 파일이며 yarn.lock 파일이 생성됩니다.
> synp --source-file package-lock.json
Workspace (npm lockfile v2) support is experimental. Pass `--with-workspace` flag to enable and cross your fingers. Good luck!
Created yarn.lock
확인해보니 yarn.lock 파일이 새로 생성되었습니다. 용량이 약 600kb이군요 ~ 생각보다 lock 파일이 용량이 크다고 생각했는데 package-lock.lock 파일은 더 큰 1.6M이군요;; 다음으로 yarn.lock 파일에서 package.json을 생성해봅니다. 소스 파일만 변경하면 됩니다.
@ yarn.lock 파일에서 package.json 생성하기이번에는 소스 파일이 yarn.lock으로 package-lock.json 파일이 생성됩니다.
> synp --source-file yarn.lock
이 방법을 사용하면 yarn이나 npm 모두 원하는 lock 파일로 변환이 가능하다는 장점이 있습니다.
여기까지 yarn 과 npm의 lock로 서로 변환하는 방법에 대하여 간략히 알아봤습니다.