일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kubernetes
- mongo 4.4
- github accesstoken
- 신입 면접 팁
- 개발자 회고록
- 개발자 전직
- ECS
- 밸런스 게임
- 회고록
- mysql index 속도차이
- 팩토리 패턴 예제
- mysql like
- 라즈베리바이4 mongo
- 인텔리제이 github 로그인
- docker m2
- aws m2
- index in
- OSI 7계층
- index like
- 쿠버네티스
- 개발자 면접 팁
- VUE
- 신입 개발자 면접
- token 탈취
- mongo 4.4.18
- 팩토리 패턴 언제
- nestjs
- git
- 개발자 취업 준비
- 퇴사
- Today
- Total
주니어 개발자 1호
[ package-lock의 중요성 ]Build Fail in Nestjs 본문
🚨 06.21 커밋 이후, Backend가 실행되지 않음
⚠️ Fact
1️⃣ 기존에는, backend에 node_module이 설치되었으나 현재 main branch 기준으로 설치 X
2️⃣ 06.21 ( npm 변경점: throttler 설치, error global serivce 설정 )
📝 Test [ node_module - not found ]
1️⃣ npm 에서 "@nestjs/throttler": "^2.0.1",
제거 후 npm install - FAIL
2️⃣ node_module 찾지 못하는 이슈 ( #8857 ) → 해결✅ ( 정보 제공 @ Seir in twitter ) ****
📝 Test [ mongoose aggregate 매개 변수 ]
1️⃣ 이전에 작동이 되었던 mongoDB 쿼리, aggregate $match 인수 오류
2️⃣ schema 분석시 $nin: number[]가 들어올 수 있기에, 문제가 없다고 판단되나 빌딩오류 발생
🟩 해결
🤔 가정:
이때까지 돌아가던 코드가 되지 않는 다면 특정 모듈의 version up 문제로 추측
하지만 추가된 모듈은 @nestjs/throttler 밖에 없음. 삭제를 하고 npm i 를 다시 실행해도 같은 문제 발생
영향이 있을 부분은 dir/ package-lock.json 이라 가정 함.
1️⃣ git log에서 package-lock.json 복사, 붙여 넣기 - Success
원인
1️⃣ package-lock을 삭제하고 npm i 를 다시 하였기 때문에 발생
2️⃣ package-lock에 대한 이해도 부족
Package, package-lock 이란?
package.json 은 version-range에 의해 한 버젼이 아니라, 특정 범위의 값을 가지고 있는 넓은 의미의 명세서.
package.json 파일의 역할
- 애플리케이션이 필요로 하는 패키지 목록 나열
- 각 패키지는 시맨틱 버저닝 규칙으로 필요한 버전을 기술합니다.
- 다른 개발자와 같은 빌드환경을 구성할 수 있습니다. 의존성이 달라 발생하는 문제를 예방합니다.
Package.json 라벨링 규칙
package.json은 “시맨틱 버저닝 규칙”에 의해 패키지의 버전명을 숫자로 관리하는 방법이 사용 되고 있습니다.
[Major].[Minor].[Patch]-[label]
- Major ( 메이저 ) - 이전 버전과 호환이 불가능 할 때 숫자를 하나씩 증가, 바뀐 버전을 사용하려 할 때 breaking change 목록을 확인하고, 이전 기능을 사용하는 코드를 수정 해야함
- Minor ( 마이너 ) - 기능이 추가되는 경우 숫자를 증가, 기능이 추가 되었다고 이전 버전의 하위 호환성을 깨트리진 않습니다.
- Patch ( 패치 ) - 버그 수정 패치를 적용할 때 사용합니다.
- label ( 라벨 ) - 선택 사, pre, alpha, beta 와 같이 버전에 대한 부가 설명을 붙이고자 할 때 사용합니다.
시맨틱 버저닝을 사용할 때, 완전히 동일한 버전만 정의 X 아래와 같은 규칙으로 의존성이 깨지지 않는 다른 버전을 설치할 수 있습니다.
- ver, =ver : 완전히 일치
- ver : 큰 버전
- =ver : 크거나 같은 버전
- < ver : 작은 버전
- < =ver : 작거나 같은 버전
- ~ver : 버전 범위
- ~1.0 , ~1.0x : 1.0이상 1.1 미만의 버전
- ^ver : SemVer 규약을 따른다는 가정에서 동작하는 규칙
- ^1.0.2 : 1.0.2이상 , 2.0 미만
- ^1.0 : 1.0.0이상, 2.0 미만
- ^1 : 1.0.0이상, 2.0 미만
참고
'Server 관련' 카테고리의 다른 글
[Chapter 4]쿠버네티스 스터디 3주차 - ( 배포 관리 ) (0) | 2022.07.16 |
---|---|
[Chapter 3]쿠버네티스 스터디 2주차 - ( 클라우드 조정 ) (0) | 2022.07.10 |
[Chapter 2]쿠버네티스 스터디 1주차 - ( 클러스터 생성 ) (0) | 2022.07.03 |
어이 없는, Mongoose 연결 오류 in Nestjs (0) | 2022.07.01 |
[Chapter 1]쿠버네티스 스터디 1주차 - Docker (0) | 2022.06.30 |