1. NPM 이해하기
Node Package Manager
Node.js의 프로젝트를 관리하는 필수적인 도구로 온라인 저장소 + 커맨드라인 도구이다.
커맨드라인 도구 :
- 저장소에서 라이브러리, 도구 설치
- 프로젝트 설정 / 관리
- 프로젝트 의존성 관리
NPM을 사용하기 위해서는 NPM 커맨드라인 도구의 사용법을 익혀야 한다.
2. NPM 커맨드라인 도구
($는 터미널에 입력하는 코드라는 뜻이다.)
$npm init :
프로젝트 디렉토리를 생성하고 해당 디렉토리 안에서 npm init 명령어를 사용하면
몇 번의 질문을 통해 package.json이라는 파일을 만들어 주고 이 디렉토리가 Node.js 프로젝트가 된다.
! package.json :
프로젝트 관련 정보들이 저장되는 파일로 이 파일을 직접 수정하거나 npm 명령어를 사용하여 프로젝트 정보를 수정할 수 있음
$npm install
해당 명령어를 통해 프로젝트 의존성을 관리할 수 있다.
의존성이란 프로젝트 내에서 사용하는 라이브러리를 관리하는 방법으로 프로젝트가 실행되기 위해서는 라이브러리에 의존하기 때문에
해당 라이브러리들을 dependency(의존성)라고 한다.
1) $npm install [package-name]
필요한 패키지를 프로젝트에 추가할 수 있다. 추가된 패키지는
package.json의 dependencies 안에 추가되며, node_modules 디렉토리에 저장된다.
2) $npm install [package-name] --save-dev
npm은 개발용 의존성을 분리하여 관리할 수 있다.
개발용 의존성은 배포 전까지만 사용하는 의존성으로 해당 명령어로 개발용 의존성을 추가할 수 있다.
개발용 의존성은 package.json의 devDependecies에 추가된다.
3) $npm install [package-name]@[version]
패키지의 버전을 지정할 수 있다.
~1.0.0 : 1.0.x 버전들을 설치
^1.0.0 : 1.x.x 버전들을 설치, 가장 왼쪽의 값이 0이 아닌 버전을 고정한다.
1.0.0 : 1.0.0 버전만 설치
4) $npm install
해당 명령어 처럼 뒤에 아무 옵션 없이 사용하면
package.json에 정의된 dependencies와 devDependencies의 의존성을 두개 다 node_modules 디렉토리에 내려받는다.
5) $npm install --production
프로젝트를 배포할 시에는 개발용 의존성을 굳이 같이 포함할 필요가 없기 때문에
package.json의 dependencies만 node_modules에 내려받는다.
6) $npm remove [package-name]
의존성 패키지를 삭제한다.
7) $npm run
package.json 파일의 scripts를 실행한다.
8) $npm install [package-name] --global
패키지를 전역 패키지 디렉토리에 내려받는다.
커맨드라인 도구들을 주로 전역 패키지로 추가해서 사용한다.
ex. express-generator(웹서버를 만드는 역할) , pm2(Node.js 프로세스 관리)
로컬 패키지 : package.json에 선언이 되어 있고, node_modules에 저장된 패키지 ($npm install [package-name])
전역 패키지 : npm install -g 를 통해 내려받아, 전역 패키지 저장소에 저장된 패키지
! 전역 패키지도 프로젝트에서 사용이 가능하지만,
프로젝트의 의존성이 package.json내에 명시적으로 선언되어 있어야 프로젝트를 좋은 방향으로 관리할 수 있다.
3. NPM에 대한 개인적인 한줄 정리
npm을 이용하여 directory를 만들고 해당 directory안에 dependencies을 구분하여
package를 내려받아 프로젝트에 사용한다.
'ELICE AI6 > Node.js' 카테고리의 다른 글
Elice) Express.js (0) | 2023.01.07 |
---|---|
Elice) NPM 2 (0) | 2023.01.05 |
Elice) Node.js (1) | 2022.12.31 |