티스토리 뷰
package.json 과 package-lock.json
이 두 파일의 차이점은 무엇일까?
우리가 npm을 통해 어떠한 패키지를 설치하면 package.json
파일이 생성되는 것을 볼 수 있다.
그곳에는 우리가 어떤 패키지를 설치했고 어떠한 버전인지를 알려주는 정보가 있다.
예를들어 prettier
를 설치했다면 package.json
파일에
"prettier": "^2.3.2",
이와 같이 버전 정보를 명시하고 있는 것을 확인할 수 있다.
그러나 package.json
에서 사용하는 버전 정보는 정확한 버전의 정보가 아닌 version range
를 사용한다.
그렇기에 우리가 npm을 통해 설치한 모듈이 저기에 나와있는 버전과 정확하지 않을 경우도 있다는 것이다.
우리가 프로젝트를 진행하며 동료와 협업을 할 때 서로의 패키지 버전을 맞추는 것은 매우 필수적이다.
버전이 조금 다르더라도 그 버전이 해당 패키지의 critical한 오류를 fix한 버전일 수 있기 때문이다.
버전이 달라 누구는 되고 누구는 안 되는 현상이 발생할 수 있다.
이러한 문제를 해결하기 위한 것이 바로 package-lock.json
이다.
이 파일에는 의존성에 대한 구체적인 정보를 품고 자동으로 생성 된다.
따라서 우리가 여러 개발자와 협업을 해야하는 상황이 있다면 서로간의 package-lock.json
파일을 맞춰 주는것이 반드시 필요하다.
npm —save-dev
패키지를 사용할 때 위와 같은 옵션을 통해서 설치하는 경우가 있다.
--save-dev
명령어는 개발에 필요한 패키지를 설치할 때 사용하는 옵션이다.
예를들어 prettier, eslint
등이 있을 것이다.
우리가 prettier를 설치하면 node_modules
디렉토리 아래에 매우 많은 모듈들이 설치되어 지는 것을 확인할 수 있다.
그러나 이 모듈들은 prettier를 설치하기 위해 필요한 또 다른 패키지들이지, 실제 프로그램을 배포할 때에는 아무런 상관이 없는 파일들이다. 만약 우리가 이 파일들과 함께 배포한다면 쓸모 없는 파일까지 배포하는 것이 된다.
따라서 prettier, eslint와 같은 개발을 도와주는 패키지를 설치할 때에는 위 옵션을 사용하자.
그 후에 npm install --production
명령어를 치면 이 프로그램에서 실제 사용되는 모듈들만 설치 되는 것을 확인할 수 있다.
yarn
yarn은 npm과 마찬가지로 패키지 매니저이다.
yarn은 매우 빠르다는 것을 장점으로 내 걸고 있지만 요즘은 npm도 성능이 매우 좋기에 어느 것을 사용하든 큰 문제가 없다. 그렇지만 npm보다 추가적으로 제공하는 기능들도 있다.
yarn을 통해 패키지를 설치하는 방법은 yarn add package
이다.
이렇게 패키지를 설치하면 npm과 마찬가지로 package.json
파일이 만들어질 것이다.
그리고 npm과 달리 yarn은 yarn.lock
이라는 파일이 별도로 만들어진다.
이는 yarn이 처음 만들어질 시기에 npm의 package-lock.json
기능이 없었기 때문이다.
yarn만이 지원하는 기능들도 살펴보려면 공식홈페이지에서 문서를 찾아보자!
'Node.js' 카테고리의 다른 글
Express 스태틱파일 서빙 (0) | 2021.07.17 |
---|---|
Node.js 스트림(stream) (0) | 2021.07.15 |
Node.js 모듈의 require, exports, module.exports (0) | 2021.07.15 |
Node.js로 프레임워크 없이 간단한 RESTful API 서버 만들기 (4) (0) | 2021.07.14 |
Node.js로 프레임워크 없이 간단한 RESTful API 서버 만들기 (3) (0) | 2021.07.13 |
- Total
- Today
- Yesterday
- 컴퓨터 구조
- 백준
- 자바스크립트
- BFS
- boj
- 중앙대학교
- 스레드
- java
- 세그먼트 트리
- 투포인터
- 구현
- ReactNative
- nestjs
- 백트래킹
- 동적계획법
- 컴퓨터 통신
- 벨만포드
- 그리디
- 자바
- 시뮬레이션
- 재귀
- nodeJS
- nest.js
- 알고리즘
- dfs
- Computer Architecture
- 그래프
- 예외처리
- node.js
- typeORM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |