NPMv2, NPMv3은 Dependencies를 제공하는 방법이 다르다. NPM에서 제공되는 모듈도 추가로 모듈을 사용할 수 있는데, 그 정보는 package.json에 고스란히 기록되어 있다. NPMv2는 각 모듈 폴더 기준 하위에 모듈이 설치 되고, NPMv3은 App 폴더 기준으로 해당 모듈이 있는지를 판단하여 없는 경우 모듈을 설치한다. 그로 인해 알아차릴 수 있는 변화가 있다.


NPMv2는 각 모듈 기준 설치가 되기 때문에 중복되는 모듈 코드의 양이 많은 편이며, 모듈에 모듈이 설치되는 깊이가 깊어질수록, 소스 형상관리에 문제점이 발생한다. 폴더의 깊이가 너무 심하게 들어가기 때문이다. NPMv3은 이런 부분을 개선하고자 App 폴더 기준으로 하위 모듈도 같이 관리 한다. 이미 설치가 되어있을 때에는 설치를 생략한다.



조건이 따르게 된다. 하위 모듈에 버전이 같은 경우에만 성립한다. 만약 그 점을 간과한다면, 모듈이 오작동 할 수도 있다. 해결을 위해서는 기존 NPMv2 방식도 병렬로 같이 사용한다.



App 폴더 기준 설치는 되어 있지만, 버전이 다른 경우에는 모듈 기준으로 설치된다. 이로써 버전에 대한 문제도 해결되고, 공통 하위 모듈은 일괄적으로 관리되기 때문에 전체적인 관리는 줄어들게 되고, 프로젝트의 효율도 올라가게 된다.


Node 버전 v4.x.x (LTS)는 NPMv2가 설치되어 있다. v5.x.x (stable)를 사용하지 않고 NPMv3을 사용하려면 npm install -g npm@3 명령어를 사용하자. npm -v 로 확인할 수 있을 것이다.


참고 사이트


+ Recent posts