node package manager의 줄임말
패키지 또는 모듈을 관리할 수 있는 cli 기능과 패키지 또는 모듈의 저장소 역할도 한다.
npm init //프로젝트 생성, 프로젝트 이름, 버전, 설명 등등
npm install [package-name] or npm i [pakcage-name]
-D //개발용 패키지
-g //전역 설치
//package-name이 없을 경우 package.json파일에 명시된 모듈 모두 설치
npm ci //package-lock.json 기반으로 패키지 설치
프로젝트에 관한 정보, 패키지 종속성을 명시한 파일.
dependency의 정확한 버전 명시한 파일.
package-lock.json이 있는 경우 package.json 사용하지 않고 package-lock.json을 사용해 패키지를 설치한다.
package.json의 package 버전은 특정 버전이 아닌 범위로 지정될 수 있기 때문에 정확한 버전이 없을 경우 다른 환경에서는 동작이 달라질 수 있어 프로젝트 관리시 package-lock.json도 함께 관리되어야 한다.
package 실행 도구.
package의 최신버전을 불러와 설치하고 실행함.
업데이트가 잦은 pakcage의 경우 편리함.
페이스북에서 만든 pakcage manager
yarn init
yarn add package-name
yarn remove
Sementic Versioning의 줄임말임
MAJOR.MINOR.PATCH MAJOR → 대규모 업데이트. 이전 버전에서는 작동하지 않는 변경사항이 추가되면 MAJOR 버전 UP MINOR → 소규모 업데이트. 이전 버전과 호환 되어야 하고 이전 버전과 호환되는 기능 추가시 MINOR 버전 UPPATCH → 버그 수정. 이전 버전과 호환되는 버그 수정시 PATCH 버전 UP{
"dependencies": {
"foo": "1.0.0 - 2.9999.9999", //1.0.0 이상 2.9999.9999 이하
"bar": ">=1.0.2 <2.1.2", //
"baz": "1.0.2 || 2.3.4", //1.0.2 또는 2.3.4
"boo": "2.0.1", //2.0.1과 정확히 일치
"asd": "http://asdf.com/asdf.tar.gz", //이 주소를 dependency로 사용함
"til": "~1.2", //PATCH 버전 종속성 변경 허용. 최신 PATCH 버전 적용, 1.2.x와 같은 의미
"cat": "^1.0", //MINOR 버전 종속성 변경 허용. 1.x.x와 같은 의미
"two": "2.x", //2.0, 2.1, 2.2 등등
"lat": "latest", //최신 버전
"dyl": "file:../dyl" //local path의 파일 사용
}
}
사용만해서 경험으로만 알고 자세히 알아보려고 하지 않았는데,
이 글을 접하고나니 저도 글로 정리해야하는 필요성을 느끼게 되네요
종속성 범위 표시 방법에 저렇게 다양한 방법이 있는줄은 몰랐습니다
저도 밀린 포스팅 하러 ㄱ.ㄱ!