거인의 코딩일지
[J.S] npm ?? VS yarn?? 개념과 차이점? 명령어 종류??? 본문
728x90
자바 스크립트 패키지 매니져?? (Javascript Package Manager)
- npm 과 yarn 은 자바스크립트 패키지 매니저 이다.
- 패키지란??
- npm 에 업로드된 노드 모듈을 이야기 한다.
- 다양한 자바스크립트 프로그램이 패키지라는 이름으로 npm에 등록되어 있다.
- 패키지가 다른 패키지를 사용할 경우 의존관계를 가지기도 한다.
- 이러한 패키지들을 사용하기 위해서 다운로드, 설치, 업데이트 의존성관리, 제거 등 복잡한 상황이 많이 생기는데 패키지 매니저를 사용하면 이러한 과정들을 자동화 하여 편리하고 안전하게 수행할 수 있도록 해준다.
npm(node package manager) 이란??
- npm은 이름 그대로 노드 패키지 매니저 이다.
- 런타임 동안 노드환경에서 쓰이는 다양한 패키지들을 관리한다.
- npm은 npm registry 라고 불리는 공개적인 패키지들로 구성된 데이터 베이스를 가지고 있다.
yarn 이란???
- yarn 은 npm 의 부족한 부분들을 개선하기 위해 Facebook 에서 개발되었다.
- yarn 은 npm이 사용하는 동일한 npm 구조에 의존한다.
- 패키지의 레지스트리에 대한 것은 바뀌지 않았고, 설치 절차가 바뀌었다고 생각하면 된다.
npm VS yarn
- Speed
- npm은 필수 단계를 순차적으로 수행하는 경향이 있어서 다음 패키지로 넘어가기 전에 각 패키지를 완전히 설치 해야하지만 yarn 은 동시에 여러 패키지들을 설치할 수 있기 때문에 속도 면에서 크게 향상된다.
- 하지만 이제는 거의 차이가 없다고 봐도 무방하다.
- Security
- npm 은 의존 관계를 가지는 다른 패키지들이 즉시 포함되도록 한다.
- 이런 부분이 더 편리하긴 하지만 보안 문제에 있어 여러 취약점들을 불러올 수 있다.
- yarn 은 yarn.lock 나 package.json 파일에 있는것들만 설치 한다.
- 이런 방식은 모든 디바이스에 같은 패키지들을 설치하는 것을 보장하기 때문에 디바이스마다 다른 버전을 설치해서 발생할 수 있는 버그들을 많이 줄였다는 것이다.
- 보안성 문제가 npm과 yarn을 비교할 때 아주 중요한 측면이라고 할 수 있고, 이 부분은 계속 강화되고 있다고 하니 보안성을 따질 때는 yarn이 더 좋다고 말할 수 있다.
npm 명령어
- npm init : package.json 생성
- npm install : package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치
- npm install package_name@버전 : 특정 패키지의 특정 버전 설치
- npm install 주소 : 특정 저장소 내 패키지 설치. 주로 github을 이와 같이 설치합니다.
- npm install package_name -g : 옵션. 글로벌로 설치. 로컬의 다른 프로젝트도 이 패키지를 사용 가능하게 됩니다.
- npm uninstall : 패키지 삭제 명령어입니다.
- npm update : 설치한 패키지들을 업데이트해줍니다.
- npm dedupe : 중복 설치된 패키지들을 정리해주는 명령어입니다.
yarn 명령어
- yarn init : package.json 생성
- yarn or yarn install : package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치
- yarn add package_name@버전 : 특정 패키지의 특정 버전 설치
- yarn add 주소 : 특정 저장소 내 패키지 설치. 주로 github을 이와 같이 설치합니다.
- yarn global add package_name : 옵션. 글로벌로 설치. 로컬의 다른 프로젝트도 이 패키지를 사용 가능하게 됩니다.
- yarn remove : 패키지 삭제 명령어입니다.
- yarn upgrade : 설치한 패키지들을 업데이트해줍니다.
- npm dedupe : 중복 설치된 패키지들을 정리해주는 명령어입니다.
728x90
'코딩 > JS' 카테고리의 다른 글
[J.S] 페이지 이동 종류 방식들??? (0) | 2023.11.02 |
---|---|
[J.S] setTimeout() 과 setInterval() ???? (0) | 2023.10.20 |
[Vue] 반응형객체 ref() ??? reactive()??? (0) | 2023.10.19 |
[CSS] 원하는 색깔 코드 따오는 방법?? (0) | 2023.10.11 |
[Vue.js] 네비게이션가드 란?? (0) | 2023.10.08 |