📖 npm
npm이란?
개념 정리
Node.js Package Manager의 약자입니다.
Node.js로 만들어진 패키지을 웹을 통해 쉽게 설치하고 관리해주는 프로그램입니다.
간단한 명령어로 기존에 공개된 패키지(node_modules)을 설치할 수 있습니다.
package.json을 통해 설치된 패키지의 업데이트 버전을 쉽게 확인 가능하며, build를 통해 파일크기를 줄여 웹 속도를 향상하는 등 JavaScript를 이용한 프로젝트를 개발하는데 편리성을 제공합니다.
npm 설치
Node.js를 설치하면, 자동으로 npm이 설치가 된다.
Node.js를 설치하고, npm이 정상적으로 설치되었는지는 아래와 같은 명령어를 cmd에 입력하면 된다.
# cmd
npm -v
명령어
대표적인 npm 명령어입니다.
# VS Code Powershell
npm init : package.json 생성
npm install : package.json 파일 및 해당 종속성에 나열된 모든 패키지를 설치
npm install 패키지_이름@패키지_버전 : 특정 패키지의 특정 버전 설치
npm install 설치주소 : 특정 저장소 내 패키지 설치. 주로 github을 이와 같이 설치합니다.
npm uninstall : 설치된 패키지 삭제 명령어
npm update : 설치된 패키지들 업데이트
npm dedupe : 중복 설치된 패키지들 정리
옵션
npm 명령어 사용시 추가로 작성할 수 있는 옵션입니다.
# VS Code Powershell
# 패키지 설치시 사용하는 옵션
-g 또는 --global : 특정 패키지를 로컬의 다른 프로젝트들도 해당 패키지 사용 가능
# 예시 : npm install -g 특정_패키지_이름
package.json이란?
개념 정리
프로젝트의 정보, 사용하는 패키지, 사용하는 패키지의 버전 등 해당 프로젝트가 의존하는 패키지(모듈들)를 알려준다.
package.json은 팀 프로젝트를 진행하는데 도움이 된다.
기존에 개발되어있던 프로젝트를 새로운 사람이 개발하려고 할때, package.json을 참고하여 해당 프로젝트가 만들어진 패키지를 동일하게 맞출 수 있다.
기본 속성
json파일은 속성(field)-값의 쌍으로 이루어져있다.
기본으로 생성되는 package.json의 속성은 다음과 같다.
{
"name": "PROJECT_DIRECTORY",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
"name" : 해당 프로젝트의 이름이며, 패키지의 고유성을 판별하는데 사용한다. 또한 명명 규칙을 따른다.
- 소문자로 작성
- 한 단어로 작성
- 하이픈이나, 언더스코어 사용가능
"version" : 패키지의 고유성을 판별하는데 사용한다.
※ "name"과 "version"을 통해 패키지의 고유성을 판별하여, 패키지를 설치할 수 있다.
이 부분이 누락되면 기존에 만들어진 프로젝트를 package.json을 참고하여 패키지가 설치하려고해도 설치가 되지 않는다.
"description" : package에 대한 설명문이다.
"scripts" : npm 명령어를 지정할 수 있다.
- 예시 : npm start, npm build
"keyword" : 패키지의 진입점이 되는 패키지의 ID이다.
"author" : 배포를 진행한 사람을 나타낸다.
"license" : 배포할 패키지의 권한과 제한 사항을 알려준다.
"contributors" : 배포를 한 사람 이외에 프로젝트에 기여한 사람을 나타낸다. 배열 안에 객체로 표현하여 사용한다.
- 예시 : contributors: [ {"name" : "Johan", "url" : "https://github.com/johan1234"}, ... ]
dependencies
프로젝트 개발시 어떠한 패키지를 사용하고 있고, 서비스 운영시 사용할 패키지를 나타냅니다.
즉, 패키지 배포 시 포함될 의존성 패키지를 나타냅니다.
해당 프로젝트가 어떤 패키지를 가지고 있어야, 해당 프로젝트를 정상적으로 실행가능한지 나타내주는 명세서입니다.
즉, 협업을 할때와 같이 여러사람이 프로젝트를 진행할때, 팀 내에서 동일한 개발환경을 구축하도록 도와준다.
{
"dependencies": {
"hexo": "5.0.0", # 5.0.0 버전과 정확히 일치하는 버전
"hexo": ">5.0.0", # 5.0.0 버전보다 큰 버전
"hexo": ">=5.0.0", # 5.0.0 버전보다 크거나 같은 버전
"hexo": "<5.0.0", # 5.0.0 버전보다 작은 버전
"hexo": "<=5.0.0", # 5.0.0 버전보다 작거나 같은 버전
"hexo": ">=1.0.0 <=5.0.0", # 1.0.0 버전보다 크거나 같은 버전에서 5.0.0버전보다 작거나 같은 버전
"hexo": "~5.0.0", # 5.0.0 버전과 근사한 버전
"hexo": "^5.0.0", # 5.0.0 버전과 호환되는 버전
...
}
}
dependencies에 적기 위한 방법은 패키지를 설치하면 자동으로 작성됩니다.
패키지를 설치하려는 명령어는 다음과 같습니다.
# VS Code Powershell
npm install 패키지_이름
devDependencies
프로젝트 개발시 어떠한 패키지을 사용하고 있고, 개발에만 사용할 패키지만 나타냅니다.
즉, 패키지 배포 시 포함되지 않습니다.
devDependencies에 적기 위한 방법은 패키지를 설치할때 개발에만 사용한다고 옵션을 지정하면 됩니다.
# VS Code Powershell
# 옵션
--save-dev 또는 --D : devDependencies에 작성하여 특정 패키지를 개발에만 사용한다고 명시하기
옵션을 추가하여 패키지를 설치하는 명령어는 다음과 같습니다.
# VS Code
npm install --save-dev 패키지_이름
# 또는 축약 옵션 사용
npm install -D 패키지_이름
'공부 > 공통' 카테고리의 다른 글
[공부] 나만의 코딩 컨벤션 (react) (0) | 2022.05.14 |
---|---|
[공부] 코딩 컨벤션 (기본) (0) | 2022.05.12 |
[공부] Git 정리 - 팀 프로젝트 (0) | 2022.05.02 |
[공부] git 정리 -3 (0) | 2022.03.06 |
[공부] git 정리 -2 (0) | 2022.03.04 |