패키지매니저로 yarn을 쓰고 있는 프로젝트에서 '개발자들이 npm을 못쓰게 막고 싶다' 라고 하면 package.json의 engines를 사용해볼 수 있습니다.

{
  // ...
  "engines": {
    "npm": "please-use-yarn",
    "yarn": ">= 1.22.11"
  },
  // ...
}

package.json에 위처럼 "engines" attribute를 추가합니다.

npm 항목에는 뭐 저런식으로 "please-use-yarn"처럼 텍스트를 써주시고요, yarn 항목은 따로 명시 안해줘도 됩니다.

engine-strict = true

그 다음 .npmrc 파일을 만들어서 위 내용을 넣습니다. npm이 engine에 써있는 조건을 무조건 체크하게 해주는 옵션입니다.

(반대로 yarn이 아니라 npm만 쓰고 싶게 한다면 package.json 에서 engines 부분만 바꿔주면 됩니다)

 

그러면 이제 npm 명령어를 써보면 이런식으로 npm 버전이 맞지 않아 오류가 나오게 됩니다. 메시지를 보고 '아 npm 말고 yarn을 써야 하는구나'라고 알 수 있겠죠

반응형