- Published on
외부 패키지 관리
패키지 설치
CDN 이용
- CDN(컨텐츠 전송 네트워크)으로 제공하는 라이브러리를 직접 import 함
<script src="http://unpkg.com/react@16/umd/react.developement.js"></script>
- 리액트의 주소를 html에서 로딩
- CDN 서버 장애로 인해 해당 라이브러리를 import한 웹 어플리케이션의 비정상 동작 야기
직접 다운로드
- 예기치 못한 CDN 서버 장애를 방지하지만 추후에 최신 버전으로 교체 시 문제 발생
- 버전에 따른 하위 호환성 여부 확인에 따른 Side Effect(human error) 발생
NPM 이용
- 한 곳에서 업데이트할 수 있고 하위 호환되는 안전한 버전만 다운 받을 수 있음
- npm install 명령어 사용
npm install react
{
"dependencies": {
"react": "^18.0.0"
}
}
- "dependencies"가 추가되고, npm install <keyword>로 다운로드 받은 목록이 출력됨
- "react"의 버전 정보 확인 가능
NPM 유의적 버전
- 버전 번호를 관리하기 위한 규칙이 필요
- 정해져 있는 패키지의 버전을 효율적으로 관리하기 위해 유의적 버전을 사용
- Sementic Version이라고 하고 버전 규칙은 아래와 같다
- 주 버전(Major Version): 기존 버전
호환되지 않게 변경
- 부 버전(Minor Version): 기존 버전 호환,
기능 추가
- 수 버전(Patch Version): 기존 버전 호환,
버그 수정
- 주 버전(Major Version): 기존 버전
버전의 범위
- 특정 버전보다 높거나 낮을 경우
> 1.2.3 >= 1.2.3 <1.2.3 <=1.2.3
- 틸드(~)와 캐럿(^) 사용
- 틸트
- 마이너 버전이 명시되어 있으면 패치 버전을 변경
~1.2.3 (1.2.3부터 1.3.0 미만까지 포함) ~0 (0.0.0부터 1.0.0 미만까지 포함)
- 마이너 버전이 없으면, 마이너 버전 갱신
- 캐럿
- 정식버전일 경우 마이너와 패치 버전 변경
^1.2.3 (1.2.3부터 2.0.0 미만까지 포함) ^0 (0.0.0부터 0.1.0미만까지 포함)
- 정식버전 미만인 0.x 버전은 패치만 갱신
- 틸트 버전보다는 캐럿 버전 채택(node.js의 경우)
- ~0과 같은 틸트 버전에는 하위 호환성을 지키지 못하는 문제가 발생하므로 캐럿을 주로 사용
- 정식 릴리즈 전 하위 호환성 유지 가능
- 틸트
버전 범위 확인하기
npm view <keyword> versions # 확인하고 싶은 dependency의 모든 버전 출력
cat node_modules/<keyword>/package.json # 설치된 dependency의 버전 확인
- npm이 어떤식으로 버전 관리하는지 확인
Referenced