node packaged manager
의 약자이다.package
는 모듈
이라고도 불리는데 프로그램
보다는 조금 작은 단위의 기능을 의미node.js
로 만들어진 pakage
를 관리해주는 툴 이라고 생각하자.즉, 다운로드 한 모든
패키지
를 캐시하기 때문에 동일한패키지
를 다시 다운로드 받을 필요가 없다.
배포
가 쉽고, 종속성
을 쉽게 해결할 수 있지만, 패키지
가 중복으로 설치될 수 있는 문제가 있다.npm
보다 패키지 설치 속도가 빠르다.offline 모드
가 가능하다.다른 특징들 보다 특이한 특징은
offline 모드
이다.
만약에 특정 이유로 인터넷에 연결되지 않은 내부 네트워크 호스트에 애플리케이션을 배포할 때offline 모드
는 필수 아닌가..? 왜 npm은패키지 레지스트리 서버
에 연결해서 패키지를 다운받는걸까..
패키지
를 설치한다.패키지
를 설치할 때, 패키지
가 완전히 설치될 때까지 기다린 후 다른 패키지
를 설치한다.패키지
를 동시에 설치하기 때문에 퍼포먼스
와 속도
가 증가한다.package.json
파일을 통해서 프로젝트의 종속성(dependencies)
과 버전(version)
을 관리한다.종속성 버전
이 ^
로 시작될 수 있다.^
문자는 다른 개발 환경에서 설치하거나, 수동으로 설치 명령어를 사용할 때마다 패키지 매니저
가 새로 릴리즈된 버전을 확인한다는 것이다.패키지 파일
에 언급된 버전이 아닌 최신 버전으로 자동으로 설치패키지
가 자동으로 새 버전
을 설치하는 것을 원하지 않을 때 다음과 같은 방법을 사용하면 된다.
Lock file(잠금 파일)
생성하여 한 번에 특정 버전만 설치하기package.json
의 패키지 버전에서^
문자 제거하기
yarn.lock
파일을 자동으로 추가하고, npm은 npm shirinkwrap
이라는 명령어로 lock
파일을 생성했었지만 npm v5.0
이후 부터는 lock.json
파일로 새로운 패키지와 함께 제공한다.패키지
를 즉시 포함할 수 있는 코드를 자동으로 실행하기 때문에 보안 시스템에 여러 가지 취약성
이 발생한다.yarn.lock
, package.json
파일에 있는 파일만 설치하기 때문에 npm 보다 안전하다고 할 수 있다.npm command | yarn command | description |
---|---|---|
npm init | yarn init | 프로젝트 초기화 |
npm install | yarn or yarn install | package.json의 패키지 설치 |
npm install-save [package name] | yarn add [package name] | 패키지를 프로젝트 종속성 수준으로 추가 |
npm install –save-dev [package name] | yarn add -D[or –dev][package name] | 패키지를 프로젝트 개발 종속성 수준으로 추가 |
npm install –global [package name] | yarn global add [package name] | 패키지를 전역 수준으로 추가 |
npm update –save | yarn upgrade | 프로젝트의 패키지 업데이트 |
npm run [script name] | yarn [script name] | package.json의 scripts에 지정된 명령 실행 |
npm uninstall –save [package name] | yarn remove [package name] | 패키지 삭제 |
npm cache clean | yarn cache clean | 캐시 삭제 |
React를 시작하기 전에 패키지 관리자
를 무엇을 쓸지 npm
과 yarn
둘 중에 선택하기 위해 알아보았다.
yarn
은 npm
보다 많은 용량의 공간을 필요로 하지만 npm
보다 빠르고 효율적 이라고 생각이 들어서 yarn
을 사용해봐야겠다.