“ 당신은 소프트웨어 품질을 추구할 수도 있고, 포인터 연산을 할 수도 있다. 그러나 두 개를 동시에 할 수는 없다. ”
npm 이란?
세상에는 정말 많은 자바스크립트 프로그래머가 있다.
그들은 지금 우리보다 먼저 앞서 나갔으며 정말 많은 코드를 작성해놓았다.
그리고 그 코드를 다른사람이 볼수 있게 공개하기도 했다.
이러한 공개되어 있는 서버인 npm 이라는 패키지 매니저를 알아보자.
npm 대체자로 yarn이 있다.
yarn은 페이스북이 내놓은 패키지 매니저이다.
1. package.Json으로 패키지 관리하기
서비스에 필요한 패키지를 하나씩 설치하다 보면 어느새 그 수가 엄청 많아질 때가 있다.
그리고 사용할 패키지는 각각의 고유한 버전이 있으므로 어딘가에 기록해야 한다.
같은 패키지라도 버전별로 기능이 다를수있다.
이에 설치한 패키지 버전을 관리하는 파일이 package.json 다.
노드 프로젝트 시작전
폴더 내부에 무조건 package.json부터 만들고 시작해야 한다.
npm은 package.json을 만드는 명령어를 제공한다.
2. npm init
- package name (패키지이름)
- version (패키지 버전)
- description (프로젝트의 설명)
- entry point (자바스크립트 실행 파일 진입점)
- test command (코드를 테스트 할때 입력할 명령어 의미)
- git repository (깃 저장소 주소)
- keywords (npm 공식 홈페이지에서 패키지를 쉽게 찾을수 있도록 해주는 키워드)
- author
- license
명령어 후 위에 질문에 대해 작성하면된다.
질문없이 바로 시작하고자 한다면, -f(--force) , -y (--yes)중 하나의 플래그를 추가하면된다,
npm init -y
package-lock.json
다양한 경우에 의해서 동일한 개발 환경 구축에 문제가 발생할수 있다.
이를 방지하기 위해 node_modules의 구성 트리 또는 package.json을 수정하는 모든 작업에 대해
package-lock.json이 자동으로 생성됨.
3. npm install
아직 정의되지 않은 의존성 모듈 설치
--save
프로젝트가 배포시 사용될 의존성 모듈을 정의하고 설치
--save 플래그를 사용하거나 생략한다.
"dependencies"에 나열됨
※npm@5 부터 생략가능
4. npm install --save -dev nodemon
--save -dev는 실제 패보시에는 사용되지 않고 개발중에만 사용되는 패키지를 나타냄
5. npm install --global rimraf
rimraf는 리눅스나 맥의 rm -rf 명령어를 윈도우에서도 사용할 수 있게 해주는 패키지이다.
전역으로 설치 했으므로 package.json에 기록되지 않는다.
rimraf node_modules
위 명령어로 node_modules 폴더를 삭제할수 있다.
※설치한 패키지 내역이 package.json에 기록되어있으므로 npm install로 설치 할수있다.
즉 node_modules는 보관하지않는다 깃과 같은 버전관리 프로그램에서 커밋 또한 하지 않는다.
package.json이 가장 중요하다
'뭔가 익숙하지않아서 이해하기 힘들었음 그래도 확실히 정리!!'
6. yarn 정리
yarn은 package manager이다.
npm보다 패키지 설치 속도가 빠르고, 패키지 설치과정에서 패키지가 code를 running하지 않도록 하여 보안상 안전하다.
정확한 버전을 명시한 yarn.lock파일을 사용
#npm install
#npm i <package> --save
yarn install or yarn
#npm i <package> --save-dev
yarn add <package>
yarn add <package> -dev : --dev옵션은 -D와 같다.
yarn remove <package>
참고
여담
정리하는걸 습관들이자..