티스토리 뷰
버전 제약 조건을 caret syntax (^1.2.3) 또는 traditional syntax ('>=1.2.3 <2.0.0') 로 표현할 수 있다고 나와있습니다.
1. traditional syntax
test package 의 버전 제약조건을 전통적인 syntax로 표현한 예시입니다.
문서에는 1.2.3 버전을 예로 들어 설명해주고 있는데요, 살펴보겠습니다.
any
모든 버전을 허용.
이는 빈 버전 제약 조건(empty version constraint)과 동일하지만 더 명시적입니다.
하지만 any를 권장하지 않습니다.
1.2.3
오직 1.2.3 버전만 허용.
사용자에게 버전 잠금을 유발할 수 있고 사용자가 해당 패키지에 의존하는 다른 패키지와 함께 패키지를 사용하기 어렵게 만들 수 있으므로 가능하면 이것을 사용하지 마십시오.
>=1.2.3
1.2.3 버전 이상.
주어진 버전 또는 더 큰 버전을 허용합니다.
일반적으로 사용합니다.
>1.2.3
1.2.3 버전 초과.
지정된 버전보다 큰 모든 버전을 허용하지만 해당 버전 자체는 허용하지 않습니다 .
<=1.2.3
1.2.3 버전 이하.
지정된 버전보다 낮거나 같은 모든 버전을 허용합니다.
<1.2.3
1.2.3 버전 미만.
지정된 버전보다 낮은 버전을 허용하지만 해당 버전 자체는 허용하지 않습니다 .
일반적으로 사용합니다. (패키지에서 작동 하지 않는 상위 버전을 지정할 수 있기 때문에)
==> 정리해보면
전통적인 syntax에서는 이상, 미만을 일반적으로 사용한다고 합니다.
그리고 주의해야할 점은 '' 로 감싸줘야합니다. >=1.2.3 <2.0.0 대신 '>=1.2.3 <2.0.0' 를 사용하라고 문서에 적혀있습니다!
2. caret syntax
버전 제약 조건을 표현하는 간결한 방법입니다.
가장 일반적으로 사용되는 방법이며 문서에서도 위의 traditional syntax 대신 캐럿 syntax 를 쓰도록 권장하고 있습니다.
^version 로 표현하는데, 이는 지정된 버전과 역호환성이 보장되는 모든 버전의 범위를 의미한다고 합니다 (??)
예를들어 ^1.2.3 은 traditional syntax로 표현하면 '>=1.2.3 <2.0.0' 과 동일하고
^0.1.2는 traditional syntax로 표현하면 '>=0.1.2 <0.2.0' 과 동일합니다.
(참고로 traditional syntax 처럼 ''로 안감싸줘도 됩니다)
캐럿 syntax는 Dart 1.8.3 부터 도입되었기 때문에
이전 버전의 pub에서 처리를 시도하지 않도록 하려면 SDK constraint (using traditional syntax) 이 필요합니다.
[ 참고 ]
pubspec file > SDK constraints 문서를 보면
Dart SDK constraint에는 caret syntax 쓰지 말라고 하네요!
'🤼♀️ > Flutter' 카테고리의 다른 글
[Flutter] 프로젝트 별로 플러터 버전을 다르게 해주는 방법 (2) | 2021.09.12 |
---|---|
[Flutter] 플러터 버전 업그레이드 (0) | 2021.09.12 |
[Flutter] pub.dev에 flutter package를 publish 하기 (2) | 2021.04.27 |
[Flutter] Marquee Widget 만들기 (2) - scroll (0) | 2021.04.24 |
[Flutter] Marquee Widget 만들기 (1) - alternate (1) | 2021.04.23 |
- Total
- Today
- Yesterday
- Django Firebase Cloud Messaging
- Flutter getter setter
- METAL
- ipad multitasking
- Django Heroku Scheduler
- github actions
- Flutter Text Gradient
- 구글 Geocoding API
- Dart Factory
- 플러터 싱글톤
- ribs
- Flutter Clipboard
- Django FCM
- drf custom error
- SerializerMethodField
- flutter build mode
- Flutter 로딩
- flutter deep link
- Sketch 누끼
- cocoapod
- 장고 Custom Management Command
- flutter 앱 출시
- 플러터 얼럿
- flutter dynamic link
- DRF APIException
- PencilKit
- Python Type Hint
- Flutter Spacer
- Watch App for iOS App vs Watch App
- 장고 URL querystring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |