package-lock.제이슨과 yarn.둘 다 lock을 제출하면 디버깅 중 오류가 발생할 수 있으니 주의하십시오

멤버들이 저에게 Heroku의 depro가 실패했다고 물었습니다. 제가 조사해 보니 Heroku의 일지에 다음과 같은 오류가 발생했습니다.
-----> Node.js app detected
-----> Build failed
 !     Two different lockfiles found: package-lock.json and yarn.lock
       Both npm and yarn have created lockfiles for this application,
       but only one can be used to install dependencies. Installing
       dependencies using the wrong package manager can result in missing
       packages or subtle bugs in production.
       - To use npm to install your application's dependencies please delete
         the yarn.lock file.
         $ git rm yarn.lock
       - To use yarn to install your application's dependences please delete
         the package-lock.json file.
         $ git rm package-lock.json
    
       https://help.heroku.com/0KU2EM53
 !     Push rejected, failed to compile Node.js app.
 !     Push failed
잘못된 내용은
두 종류의lockfile가 있는데 어느 것이 좋은지 모르겠습니다. 그중 하나를 빼주세요.
이런 말이 쓰여 있다.
둘 다 고정 의존 모듈 버전의 같은 역할을 하기 때문에 당연히 혼란스러울 것이다.
실제 프로젝트 로그yarn.lock를 보고 중간에 제출package-lock.json했는데 그 시간부터 오류가 발생했습니다.
당신이 지적한 내용package-json.lock이나 yarn.lock에 따라 해주시면 정상적으로 일할 수 있습니다.
아마도 헤로쿠뿐만 아니라PaaS계의 서비스에서도 비슷한 오류가 발생할 것이다.

대책


우선, npm와yarn 중 어느 것을 사용하도록 위탁하는 것이 아니라git rm 다음과 같이 설치 방법을 통일화해야 한다.
  "scripts": {
    "setup": "yarn",
    ...
  }
이를 바탕으로 npm와yarn을 사용하여 팀과 공유하는 토대에서 프로젝트 운용을 명확히 했다.
만약 참고할 수 있다면 대단히 영광스럽습니다.

좋은 웹페이지 즐겨찾기