개발세발
package.json 과 package-lock.json 본문
package.json
- packages 폴더는 React 저장소에 있는 모든 패키지들에 대해 package.json과 같은 메타데이터와 src 폴더를 포함하고 있습니다. 변경하고자 하는 부분이 코드와 관련되어 있다면, src 폴더에 대부분을 할애하게 될 것입니다.
https://github.com/facebook/react/tree/main/packages
GitHub - facebook/react: A declarative, efficient, and flexible JavaScript library for building user interfaces.
A declarative, efficient, and flexible JavaScript library for building user interfaces. - GitHub - facebook/react: A declarative, efficient, and flexible JavaScript library for building user interf...
github.com
1. 메타 데이터를 표현
➡️ node package를 위한 내용
2. 프로젝트에서 사용하는 의존성 나열
package-lock 파일을 커밋해줘야 버전이 맞지 않는 일이 줄어들게 됨
➡️ 찾아보니 package.json 파일의 의존성 선언에는 "version range"가 사용되므로 package-lock.json에 기재된 정확한 버전명이 있따면 오류가 더 줄어들게 된다.
* 자세한 내용은 아래의 블로그에 이해하기 쉽게 잘 작성되어 있다
https://hyunjun19.github.io/2018/03/23/package-lock-why-need/
package-lock.json은 왜 필요할까?
package-lock.json은 왜 필요할까? 2018-03-23 package-lock.json은 왜 필요할까? 어느 날 부터 인가 npm을 사용하면 package-lock.json 파일이 같이 생기기 시작했습니다. 이 파일의 정체가 궁금했지만 바쁘다는 핑
hyunjun19.github.io
** 그래서 협업시 node-modules를 공유하지 않음!
package.json에 설치된 dependencies의 목록이 있으므로
package.json을 바탕으로 npm이 설치된다.
따라서 사용하고자 하는 npm들을 설치한 후 package.json만 공유를 하고
공유받은 다른 사용자가
npm install
만 해주면 npm의 종류와 버전이 알맞게 설치가 된다
* node-modules 파일은 파일 개수가 많아서 무겁기 때문에 굳이 이 폴더를 주고 받는 것보단 pacakge.json을 공유하고 공유받아 사용하고자 하는 유저가 npm install을 해서 로컬에서 새롭게 설치하는 것이 더 효율적이다.
https://docs.npmjs.com/cli/v9/configuring-npm/package-json
package.json | npm Docs
Specifics of npm's package.json handling
docs.npmjs.com
https://docs.npmjs.com/cli/v9/configuring-npm/package-lock-json
package-lock.json | npm Docs
A manifestation of the manifest
docs.npmjs.com
** 패키지 관리 툴
npm | yarn |
마켓이 큼 | 속도가 빠름, 신생마켓 |
npm install | yarn add |
https://velog.io/@kysung95/%EA%B0%9C%EB%B0%9C%EC%83%81%EC%8B%9D-npm%EA%B3%BC-yarn
[개발상식] npm과 yarn
패키지 관리 툴로는 대표적으로 npm과 yarn이 있습니다.여러분들은 평소 어떠한 패키지 설치 모듈을 사용하나요?
velog.io
'코딩공부 > 참고자료' 카테고리의 다른 글
vscode에서 STAGED CHANGES 가 너무 많다면 (0) | 2022.12.20 |
---|---|
prettier과 ESLint (0) | 2022.12.20 |
MVC패턴 (0) | 2022.11.25 |
기본 리눅스 명령어 정리 (0) | 2022.11.25 |
데이터 포맷 (0) | 2022.10.05 |