[node] NPM(Node Package Manager)

borderline0px·2022년 2월 8일
0

node

목록 보기
1/1

지금까지 무작정 npm install 명령어를 통해
프로젝트에 필요한 라이브러리를 다운받아서 사용해왔다

이 글을 통해,
npm에 대해 간단하게라도 정리해보고자 한다
(라이브러리를 설치하여 사용할 때를 기준으로 작성)


npm Docs를 읽고, 추가 및 수정할 예정
잘못된 개념이 있다면 지적해주세요🥰

유용한 링크

📎 NPM DOCS
📎 https://heropy.blog/2018/02/18/node-js-npm/


1. NPM이란?

Node Package Manager의 약어로
자바스크립트 프로그래밍 언어를 위한 패키지 관리자를 뜻한다
즉, 개발자들이 자바스크립트로 작성된 오픈 소스 라이브러리를
등록, 공유 및 활용할 수 있도록 해주는 레지스트리이다


2. NPM설치

📎 Node.js 공식 사이트
Node.js LTS 버전(안정성, 보안성 높음)을 다운받으면
NPM이 함께 설치된다

node -v
npm -v

CLI를 통해,
위의 명령어를 수행해서 버전 정보가 나온다면
설치가 정상적으로 완료된 것이다


3. 라이브러리 설치

✨ npm init 이후 생성된 package.json 파일

✨ 라이브러리 install 이후 package.json 파일

프로젝트에
필요한 라이브러리를 설치하기 위해서는
먼저,

npm init
npm init -y // 질문 없이 바로 파일 자동으로 생성

명령어로 package.json 파일을 생성한다

npm init -y

package.json 파일이 생성되었다면

npm install <원하는 라이브러리>
npm install -D <개발환경에서 사용할 라이브러리>

npm install 명령어를 통해 원하는 라이브러리를 설치할 수 있다
npm install -D 명령어를 통해 라이브러리를 설치하면
개발환경에서 사용될 라이브러리를 지정할 수 있다

npm install로 설치시 dependencies에
npm install -D로 설치시 devDependecies에 명시됨

1) package.json

프로젝트 및 라이브러리 정보를 관리하는 문서로
프로젝트의 루트 디렉토리에 생성된다

프로젝트에 필요한 라이브러리 종류와 버전이 명시되어 있기 때문에
깃허브에 공유할 경우, 무거운 node_modules 전체를 올릴 필요는 없다

2) node_modules

npm을 통해, 라이브러리를 하나라도 설치하게 되면
node_modules라는 파일이 생성된다

node_modules 파일은
npm repository에 있는 라이브러리의 소스코드를 담고 있다

3) package-lock.json

📎 package-lock.json에 관한 블로그

우리는 라이브러리 버전을 package.json에
범위(version range)를 정해서
기록해둔다
이는 각각의 컴퓨터에서
같은 package.json으로 패키지를 설치하더라도
다른 버전이 설치될 수가 있다는 것을 의미한다

package-lock.json에는
프로젝트에서 사용한
명확한 버전을 기록해둔다

이를 통해,
개발자들이 동일한 의존성 버전을 설치할 수 있도록 보장해준다

package.json이 version range를 통해,
버전관리를 하는 이유는 무엇일까?

정확한 패키지 버전을 명시해둔다면
버그 수정이 발생할 때마다
그것을 추적하여
package.json을 수정해주어야 하기 때문이라고 한다


4. CLI 명령어

npm init -y : 초기화
npm install : 라이브러리 설치
npm install -g : 전역 설치
npm install -D : 개발시 사용할 라이브러리 지정하여 설치
npm uninstall : 라이브러리 제거
npm outdated : 오래된 라이브러리 확인
npm update : 라이브러리 업데이트
npm view : 라이브러리 정보 보기

아래의 링크를 통해,
더 많은 명령어를 확인해볼 수 있다
📎 NPM CLI Commands


5. Semver(Semantic Version)

라이브러리의 버전을 관리하기 위해서
npm은 유의적 버전을 지원한다

1.0.0
major.minor.patch

  • major: major 버전이 증가하면 이전과는 크게 다른 기능들이 업데이트 되었다는 것을 의미. API가 호환되지 않아서 업데이트를 할 경우, compile error가 발생할 수 있음

  • minor: minor 버전이 증가하면 API가 호환되는 범위 내에서 작은 기능이 추가되는 것을 의미

  • patch: patch 버전이 증가하면 사소한 bug의 수정을 의미


6. npm/npx/yarn

📎 yarn vs npm

자바스크립트 모듈(라이브러리)를 관리해주는 도구에는
npm만 있는 것이 아니다
페이스북에서 개발된 yarn을 통해서도 패키지 관리가 가능하다

1) yarn

📎 yarn 공식 사이트

yarn은
Ultra Fast, Mega Secure, Super Reliable 이라는
문구를 통해서 알 수 있듯이
빠르고, 신뢰 가능하고, 안정성을 강조한다

yarn은 패키지 설치시 병렬 설치가 가능하여
순차적으로 패키지를 처리하는 npm에 비해
속도가 빠르다고 한다

2) npx

npx는 npm과 구분지어 생각할 개념이 아니다
npx는 npm으로부터 새로이 추가된 도구다

NPM: Package Manager(관리)
NPX: Package Runner(실행)

npx는 하나하나 패키지를 설치, 제거, 실행할 필요없이
일회성으로 npm 레지스트리에 접근하여 실행하는 도구다

즉, 내가 직접 패키지를 설치하여 업데이트 하지 않아도
npm 레지스트리에 있는 최신 버전의 패키지를 실행시킬 수 있다는 것이다

profile
어려운 게 아니라 낯설어서 그런거야

0개의 댓글