티스토리 뷰
npm install 과 npm ci 차이?
둘 다 의존성 패키지를 설치하는 명령어이다. 차이점은 기준이 되는 파일
- npm install은 package.json을 기준으로 의존성을 설치한다.
- npm ci(clean install)은 package-lock.json을 기준으로 의존성을 설치한다. => 최종 빌드 시에 사용하면 good
위의 차이점을 알기 위해서는 Semantic versioning 개념에 대한 이해가 있어야 한다.
Semantic versioning(SemVer)
npm은 시멘틱 버저닝(SemVer)이란 버전 표기법을 따른다.
- 이 시점에는 이 기능을 제공할 겁니다!라는 의미(버전 업이 된다면 새로운 기능을 제공(혹은 업데이트)할 거야)
이 개념을 알면 라이브러리의 상세를 보지 않더라도 대충 어떤 업데이트가 있는 지 파악할 수 있다.
- `major.minor.patch` 의 형태 (왼 -> 오 방향으로 읽는다)
- major: breaking change를 포함한 변경이 포함된 업데이트(이전 것과 호환이 안되는 기능이 존재한다는 의미 breaking)
- minor: 기존 기능에는 영향x breaking change가 없는 변경이 포함된 업데이트
- patch: breaking change가 없는 버그 fix
package.lock.json 과 package.json 의 차이
- lock.json은 시맨틱 버저닝앞에 ~, ^ (틸드, 캐럿)이 붙지않는다. => 버전을 잠궈버린다. 변경X
- package.json은 설치된 패키지에 틸드, 캐럿이 붙는다. (*요즘은 주로 캐럿만 사용됨) => 버전에 허용 범위가 있다. => 변경O
dependency 버전을 고정해두지 않고 범위로 설정하는 이유(package.json의 경우)?
- 버그 fix, update등이 발생할 수 있기 때문이다. (major 버전의 업데이트 말고 하위 버전의 업데이트일 경우 유용)
'Frontend > WIL😎' 카테고리의 다른 글
[WIL | 원티드 FE 인턴십] 3주차 클린 코드를 위한 피드백 (0) | 2023.08.01 |
---|---|
[WIL | 원티드 FE 인턴십] 2주차 (07.03 ~ 07) 후기 (0) | 2023.07.09 |
[WIL | 원티드 FE 인턴십] 1주차 (06.26 ~ 30) 후기 (0) | 2023.07.03 |
[CRA | Vercel] lazy 로드된 컴포넌트 배포 시 react router 동작 오류 (0) | 2023.06.13 |
[server response] 백의 응답값으로 html이 오는 경우 (1) | 2023.06.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- is()
- 원티드 프리온보딩 FE 챌린지
- 원티드 3월 프론트엔드 챌린지
- 프리온보딩 프론트엔드 챌린지 3월
- 형제 요소 선택자
- D 플래그
- ~ ^
- nvm 설치순서
- Prittier
- 원티드 FE 프리온보딩 챌린지
- 항해99프론트
- reactAPI
- getStaticPaths
- float 레이아웃
- 부트캠프항해
- 타입스크립트 DT
- nvm경로 오류
- 틸드와 캐럿
- && 셸 명령어
- fs모듈 넥스트
- 항해99추천비추천
- aspect-ratio
- getServerSideProps
- tilde caret
- 프리렌더링확인법
- 항해99프론트후기
- grid flex
- 타입스크립트 장점
- 원티드 프리온보딩 프론트엔드 챌린지 3일차
- text input pattern
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함