npm과 yarn

Min·2021년 1월 7일
1

NodeJS

목록 보기
2/3
post-thumbnail

1. npm

  • node package manager(자바스크립트 노드)
  • Node.js 만들어진 모듈을 웹에서 받아서 설치하고 관리해주는 프로그램
  • 온라인 데이터베이스로 이루어져있으며 클라이언트를 통해 접근 가능

장점

  • 유용한 패키지들을 받아서 손쉽게 사용가능하다.
  • 세계 최대 규모의 패키지들을 보유하고 있으며 노드 생태계를 견고하게 해줌

단점

  • 저장소의 취약한 보안이슈, 의존 패키지의 버저닝 이슈
  • 패키지가 많아짐에 따라 빌드 성능이 떨어짐

2. yarn

  • 페이스북에서 만든 것으로 npm 서버에 비해 속도가 빠르고 npm과 사용법이 비슷
  • lock 파일은 Package.json에서 사용하는 버전 숫자들의 혼란을 줄여준다.

장점

  • 다운로드한 패키지를 캐싱하므로 다시 다운로드 할필요 없음(오프라인도 가능)
  • 운영을 병렬화하여 리소스 활용 극대화
  • 체크섬을 사용하여 코드가 실행되기 전에 설치된 패키지의 무결성을 확인해줌
  • 한 시스템에서 작동하는 설치가 다른 시스템에서 동일한 방식으로 작동하는지 보장

단점

  • Yarn.lock파일의 버전관리로 인해 기존 모듈이 최신화로 업데이트 될 수 있으며 이 경우 하위 호환을 보장하지 않는 모듈의 경우는 에러가 날 수 있다.

[JavaScript] npm이란?
yarn이란?
Yarn 톺아보기

3. npm 명령어

명령 프롬프트에 입력하는 명령어이다.

  • npm help 또는 npm 명령어 help : 명령어가 뭐가 있는지 모를 때 사용하며,
    해당 명령어가 무슨 역할을 하고, 가능한 옵션은 뭐가 있는지 궁금하면 가운데 명령어를 넣어서 help하면 된다.
    ex) init이 무슨 명령어인지 모르겠다면 npm init help하면 된다.

npm 옵션 -g, --save

npm install 명령어를 사용할 때 뒤에 옵션을 줄 수 있다.

  • 뒤에 –save 또는 -S를 하면 dependencies에 추가된다.
    npm5부터는 –save 옵션이 기본적으로 설정되어 있기 때문에 안 붙여도 된다.

  • 뒤에 -g를 하면 글로벌 패키지에 추가된다. 글로벌 패키지에 추가하면 이 프로젝트뿐만 아니라 다른 프로젝트도 해당 패키지를 사용할 수 있다.

출처: 더 알아보기

설치 관련

  • npm init : package.json을 만드는 명령이다. 새로운 프로젝트나 패키지를 만들 때 사용한다.
  • npm intall : 패키지를 설치하는 명령어이다.
    npm install 패키지@버전하면 특정 버전을 설치할 수 있고, npm install 주소하면 특정한 저장소에 있는 패키지를 설치할 수 있다.
    주소는 주로 Github에만 있는 패키지를 설치할 때 사용한다.
  • npm update : 설치한 패키지를 업데이트하는 명령어이다.
  • npm dedupe : npm의 중복된 패키지들을 정리할 때 사용한다. 가끔 쳐주면 용량도 줄이고 좋다.

  • npm docs : 패키지에 대한 설명을 보여준다.

조회 관련

  • npm root : node_modules의 위치를 알려준다.

  • npm outdated : 오래된 패키지가 있는지 알려준다. 오래되었고 package.json에 적어둔 버전 범위와 일치하면 빨간색으로, 오래되었지만 버전 범위와 일치하지 않으면 노란색으로 표시된다.

  • npm ls : 패키지를 조회하는 명령어이다. 현재 설치된 패키지의 버전과 dependencies를 트리 구조로 표현한다. npm ll을 하면 더 자세한 정보를 준다. npm ls [패키지명]을 하면 해당 패키지가 있는지와, 해당 패키지가 어떤 패키지의 dependencies인지 보여준다.

  • npm search : npm 저장소에서 패키지를 검색하는 명령어이다. 패키지의 이름, 설명 또는 키워드를 바탕으로 검색 결과가 나온다.

  • npm owner : 패키지의 주인이 누군지 알려주는 명령어이다. 또는 여러 명의 주인을 설정하거나 지울 수 있다.

  • npm bugs : 버그가 발생했을 때 어떻게 패키지의 주인에게 연락을 취할지 알려준다. 주로 Github의 issues 탭을 연다.

로그인 관련

  • npm adduser : npm에 회원가입하는 명령어이다. 로그인도 된다. npm login도 똑같은 역할을 한다.

  • npm logout : 반대로 logout할 때 사용한다.

  • npm whoami : 이름 그대로 내가 누군지 물어보는 명령어이다. 로그인한 상태라면 자신의 아이디를 알려준다.

배포 관련

  • npm publish : 패키지를 직접 출시하거나 버전 업그레이드를 할 때 사용하는 명령어이다. .gitignore 또는 .npmignore 파일에 적혀있지 않은 파일들은 npm 저장소에 업로드되어 출시된다.

  • npm deprecate : 이미 낸 패키지를 사용하지 않도록 권고하는 명령어이다. 자신이 어떤 버전을 출시했는데 치명적인 버그가 있다면 이 명령어를 사용해서 다른 사람들에게 사용하지 말도록 말해준다.

  • npm unpublish : publish한 패키지를 다시 unpublish하는 것이다. 하지만 deprecate를 쓰는 게 나은 게 이미 자신의 패키지를 다운로드한 사람들에게 피해를 입힐 수 있다.

  • npm star : 자신이 좋아하는 패키지를 표시하는 기능이다. 이 star이 많을수록 인기 패키지이기도 한다.

  • npm version : 버전 업데이트를 할 때 사용한다. 새로운 버전이 나왔다면 npm version [버전]하면 된다.

실행 관련

  • npm start : package.json의 scripts에 있는 start 명령어를 실행하는 부분이다. 만약 start 명령어를 따로 설정하지 않았다면 node server.js가 실행된다.
  • npm stop : npm start했던 것을 멈추는 명령어이다.
  • npm restart : npm stop 후에 다시 npm start를 하는 명령어이다.
  • npm test : test 명령어를 실행한다.
  • npm run : 그 외의 scripts를 실행하는 명령어이다.
    ex) scripts에 build 명령어가 있다하면, npm run build하면 된다.

설정 관련

  • npm cache : npm 내의 cache를 보여준다. 만약 npm에 문제가 생기거나 하면 제일 먼저 하는 게 npm cache clean으로 cache를 지우는 것이다.
  • npm rebuild : npm을 다시 설치하는 명령어이다. 에러가 발생했을 시 주로 npm cache clean을 한 후 이 명령어를 쳐서 재설치해본다.
  • npm config : npm의 설정을 조작하는 명령어이다. npm config list 하면 현재 설정들을 볼 수 있고, npm set [이름][값], npm get [이름]으로 속성을 설정하거나 조회할 수 있다.

출처: 더 알아보기

profile
slowly but surely

0개의 댓글