[NODE 강의] Npm(Node Package Manager)이란?

2021. 2. 17. 00:50Dev/Node

반응형

[클립명]

1. 에디터 설치하기

2. 모듈패턴

3. npm

NPM(Node Package Manager)이란?

node.js 를 배우기 위해서는 npm이라는 것을 필수로 알아야 한다.

npm은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다. 자바스크립트 런타임 환경 node.js의 기본 패키지 관리자이다.

즉 자바스크립트로 개발된 각종 모듈의 설치, 업데이트, 구성, 제거 과정을 자동화하여 관리해주는 기능이다.

쉽게 말하면, 자신이 만든 모듈을 배포하거나, 다른 사용자가 만든 모듈을 다운로드하는 것을 손쉽게 할 수 있도록 도와주는 기능이다.

 

npm은 node.js를 설치하면 자동으로 함께 설치된다. node.js 설치 후 cmd 창에서 아래 명령어를 입력하여 설치여부 및 버전을 확인할 수 있다.

//설치된 node.js의 버전 확인
$ node -v

//설치된 npm의 버전 확인
$ npm -v

npm과 비슷한 패키지 관리자로 여러가지가 있다. 페이스북에서 개발한 'Yarn'이라는 것도 있다. Yarn의 속도가 npm보다 빨라서 Yarn을 선호하는 개발자도 많다. (현재는 npm의 속도도 Yarn과 비슷한 수준으로 올라왔다고 함)

 

패키지 설치해보기

npm을 이용하여 패키지를 설치해보자.

1. 우선 적당한 경로에 테스트용 폴더를 만들고, cmd창에서 해당 폴더로 이동한다.

2. 해당 폴에서 아래 명령어를 실행하여 npm을 이용할 수 있는 환경을 구성한다.

   - 해당 명령어를 실행하면 패키지명, 버전, 설명글, 만든이, git repository주소 등을 설정할 수 있다.

   - 이런 필드들을 설정하는 것이 귀찮다면, npm init -y 명령어를 실행하면 각종 설정값을 입력하지 않아도 된다.

$ npm init

3. 폴더에 package.json 파일이 생성된다. 해당 파일은 패키지의 기본 설정값 및, 설치한 패키지들의 버전등이 기록되는 파일이다. 따라서, git이나 svn으로 소스를 관리한다면 package.json 파일은 버전관리의 대상이 돼야 한다. 그래야만 다른 개발자가 소스를 체크아웃 받아서 package.json에 기록된 각종 패키지들을 npm install 명령어로 설치할 수 있다.

패키지를 설치하지 않은 상태의 package.json 내용

4. random한 ID값을 생성해주는 UUID4라는 패키지를 설치해보자.

$ npm install uuid4

5. 패키지가 설치되면서 폴더에 package-lock.json 파일과 node_modules 폴더가 생성된다.

- package-lock.json 파일 : 패키지별로 필요한 하위 모듈들의 버전등이 상세하게 기록된 파일

- node_modules 폴더 : 실제로 모듈의 파일이 다운로드돼 설치되는 폴더

 

dependencies 필드가 생겼고, 방금 전에 설치한 uuid4 패키지의 버전이 기록돼 있다.

 

★ 패키지 설치/업데이트/삭제 명령어

//패키지 설치 (해당 폴더에만 설치)
$ npm install 모듈명
//패키지 전역설치 (모든 폴더에서 사용할 수 있도록 전역 설치)
$ npm install -g 모듈명
//패키지 업데이트
$ npm update 모듈명
//패키지 삭제
$ npm delete 모듈명

이렇게 다른 개발자들이 배포한 각종 패키지들을 npm을 이용하여 손쉽게 설치할 수 있다. 필요한 패키지들이 있다면, npm 홈페이지 에서 검색하여 설치할 수 있다. 

그럼 node.js에서는 npm을 이용하여 설치하거나 자신이 개발한 패키지들을 어떻게 내보내고 불러들여서 사용할 수 있을까?

 

모듈 패턴

1. 내가 만든 파일 or 함수 등을 다른 파일에서 사용할 수 있도록 내보낼 때 : module.exports 변수 or 함수

2. 내가 만든 파일 or 다운로드받은 패키지를 사용하고자 할 때 : require 파일명

   - 단, 내가 만든 파일은 현재 파일을 기준으로 해당 파일의 경로를 파일명에 지정 필요 (ex) '..\sample\module'

   - 다운로드받은 패키지를 사용할 때는 패키지명만 쓰면 됨 (ex) require('uuid4')

반응형

'Dev > Node' 카테고리의 다른 글

[NODE 강의] [Express] 정적파일 서비스  (0) 2021.03.04
[NODE 강의] body-parser?  (0) 2021.03.03
[NODE 강의] View Engine / 미들웨어 란?  (0) 2021.02.25
[NODE 강의] Express 란?  (0) 2021.02.24
[NODE 강의] Node.js 란?  (0) 2021.02.16