한눈에 보기
| 명령어 | 목적 | pubspec.yaml | pubspec.lock | 패키지 다운로드 |
|---|---|---|---|---|
| pub get | 의존성 설치 | 읽기만 | 생성/유지 | O |
| pub upgrade | 의존성 업그레이드 | 읽기만 | 갱신 | O |
| pub outdated | 업데이트 가능 확인 | 읽기만 | 읽기만 | X |
1. flutter pub get
목적: pubspec.yaml에 명시된 패키지를 설치
flutter pub get동작 방식:
pubspec.yaml (의존성 정의)
↓
pubspec.lock 있음?
├─ YES → lock 파일의 정확한 버전으로 설치
└─ NO → 조건에 맞는 최신 버전 설치 후 lock 파일 생성
↓
.dart_tool/package_config.json 생성
↓
패키지 캐시에서 다운로드
사용 시점: 프로젝트 처음 clone 후 / pubspec.yaml 수정 후 / 팀원과 동일한 버전 유지할 때
예시:
# pubspec.yaml
get: ^4.6.6 # 4.6.6 이상 5.0.0 미만 허용- pubspec.lock이 있으면 → get 4.6.6 설치
- pubspec.lock이 없으면 → get 4.7.3 설치
2. flutter pub upgrade
목적: pubspec.yaml 조건 내에서 최신 버전으로 업그레이드
flutter pub upgrade # 전체 업그레이드
flutter pub upgrade get # 특정 패키지
flutter pub upgrade --major-versions # Major 포함동작 방식:
pubspec.yaml (의존성 정의)
↓
pubspec.lock 무시
↓
조건 내 최신 버전 탐색
↓
pubspec.lock 갱신
↓
새 버전 다운로드
사용 시점: 버그 수정, 보안 패치, 새 기능 필요 시
예시:
# pubspec.yaml
get: ^4.6.6- 업그레이드 전 → get 4.6.6
- 업그레이드 후 → get 4.7.3
| 옵션 | 설명 |
|---|---|
| (없음) | pubspec.yaml 조건 내 최신 |
| —major-versions | major 버전까지 업그레이드 |
| —dry-run | 변경 미리보기 |
3. flutter pub outdated
목적: 업데이트 가능한 패키지 확인 (파일 변경 없음)
flutter pub outdated동작 방식:
pubspec.yaml + pubspec.lock 읽기
↓
pub.dev 최신 버전 조회
↓
비교 테이블 출력
출력 예시:
Package Current Upgradable Resolvable Latest
get *4.6.6 4.7.3 4.7.3 4.7.3
fl_chart *0.70.2 *0.70.2 *1.1.0 1.1.1
| 컬럼 | 의미 |
|---|---|
| Current | 현재 설치된 버전 |
| Upgradable | pub upgrade 가능 (조건 내) |
| Resolvable | —major-versions 가능 버전 |
| Latest | pub.dev 최신 버전 |
*표시는 최신이 아님
실제 시나리오
# pubspec.yaml
dependencies:
get: ^4.6.6 # 현재 4.6.6, 최신 4.7.3
fl_chart: ^0.70.2 # 현재 0.70.2, 최신 1.1.1| 명령어 | get 결과 | fl_chart 결과 |
|---|---|---|
| pub get | 4.6.6 유지 | 0.70.2 유지 |
| pub upgrade | 4.7.3 업그레이드 | 0.70.2 유지 |
| pub upgrade —major-versions | 4.7.3 + pubspec 수정 | 1.1.1 + pubspec 수정 |
| pub outdated | 정보만 표시 | 정보만 표시 |
권장 워크플로우
# 1. 현재 상태 확인
flutter pub outdated
# 2. 안전한 업그레이드 (조건 내)
flutter pub upgrade
# 3. 다시 확인
flutter pub outdated
# 4. Major 업그레이드 필요 시
flutter pub upgrade --major-versions --dry-run # 미리보기
flutter pub upgrade --major-versions # 실제 적용