dart pub — pub 패키지 관리자 커맨드라인 인터페이스
dart pub — pub 패키지 관리자 커맨드라인 인터페이스
Dart의 패키지 관리자인 pub는 커맨드라인 인터페이스(CLI)를 갖고 있어요. flutter 도구와 dart 도구 둘 다에서 쓸 수 있죠. 이 글에서는 dart pub으로 어떤 일들을 할 수 있는지 정리해 드릴게요.
출처: dart pub
본문
pub 패키지 관리자는 커맨드라인 인터페이스를 제공하는데, 이건 flutter 도구나 dart 도구와 함께 동작해요. 어느 쪽 도구를 쓰든 pub 커맨드 다음에 get 같은 하위 커맨드를 붙이면 돼요.
$ dart pub get # Flutter가 아닌 패키지의 의존성을 가져옴
$ flutter pub get # Flutter 패키지의 의존성을 가져옴
이 사이트의 예시는 dart pub <subcommand>를 사용하지만, 현재 디렉터리에 Flutter 앱이나 다른 Flutter 특화 코드가 있다면 그 대신 flutter pub <subcommand>를 쓰면 돼요. 더 자세한 내용은 Flutter 웹사이트의 Using packages 문서를 참고해요. pub 도구를 쓰다 문제가 생기면 Troubleshooting Pub 문서를 보면 도움이 돼요.
하위 커맨드 목록
다음 각 pub 하위 커맨드에 대한 자세한 문서가 있어요.
addcachedepsdowngradegetglobaloutdatedpublishremovetokenunpackupgrade
하위 커맨드 개요
pub의 하위 커맨드들은 크게 세 가지 범주로 나눌 수 있어요.
- 패키지 의존성 관리하기
- 커맨드라인 앱 실행하기
- 패키지와 앱 배포하기
패키지 의존성 관리하기
pub는 우리 코드가 의존하는 패키지를 관리하기 위한 여러 하위 커맨드를 제공해요. 이 그룹에서 가장 자주 쓰는 커맨드는 get과 upgrade인데, 이 두 개가 패키지가 사용하는 의존성을 가져오거나 업그레이드하는 역할을 해요.
pubspec 파일을 수정할 때마다 dart pub get이나 flutter pub get을 실행해 의존성이 최신 상태인지 확인해야 해요. 일부 IDE는 프로젝트 생성 시점이나 pubspec이 수정될 때 이 단계를 자동으로 수행해 주기도 해요.
cache— pub의 로컬 패키지 캐시를 관리해요. 이 커맨드로 패키지를 캐시에 추가하거나, 캐시의 모든 패키지를 깨끗하게 재설치할 수 있어요.deps— 현재 패키지가 사용하는 모든 의존성을 나열해요.downgrade— 현재 패키지가 의존성으로 나열한 모든 패키지의 가장 낮은 버전을 가져와요. 패키지 의존성의 하한 범위를 테스트할 때 쓰죠.get— 현재 패키지가 의존성으로 나열한 패키지들을 가져와요.pubspec.lock파일이 이미 있다면, 가능하면 lock 파일에 나열된 각 의존성의 버전을 가져와요. 필요에 따라 lock 파일을 만들거나 갱신해요.outdated— 현재 패키지가 의존하는 모든 패키지를 살펴보고 어떤 의존성이 구식인지 판단해, 이를 갱신하는 방법에 대한 조언을 줘요. 패키지 의존성을 업데이트하고 싶을 때 이 커맨드를 쓰면 돼요.upgrade— 현재 패키지가 의존성으로 나열한 각 패키지의 최신 버전을 가져와요.pubspec.lock파일이 있다면 lock 파일에 나열된 버전을 무시하고, pubspec의 제약 조건을 지키는 최신 버전을 가져와요. 필요에 따라 lock 파일을 만들거나 갱신해요.
커맨드라인 앱 실행하기
global 하위 커맨드를 쓰면 패키지를 전역적으로 사용할 수 있게 만들 수 있어요. 그러면 그 패키지의 bin 디렉터리에 있는 스크립트를 실행할 수 있죠. 전역으로 사용 가능한 스크립트를 실행하려면 시스템 캐시 bin 디렉터리를 PATH에 추가해야 해요.
패키지와 앱 배포하기
pub로 패키지와 커맨드라인 앱을 배포할 수 있어요.
패키지 — Dart 패키지를 세상과 공유하려면 publish 하위 커맨드를 사용해 패키지를 pub.dev 사이트에 업로드하면 돼요. 다른 사용자가 우리 패키지를 수정하고 새 버전을 업로드할 수 있게 하려면 Uploaders 문서를 참고해요.
커맨드라인 앱 — 스크립트(bin/ 디렉터리 안의 모든 것)를 포함하는 패키지라면, pubspec 파일에 executables 태그를 추가하는 것을 고려해 봐요. 스크립트가 executables에 나열되면 사용자가 dart pub global activate를 실행해서 커맨드라인에서 바로 사용할 수 있게 돼요.
전역 옵션 (Global options)
몇 가지 커맨드라인 옵션은 모든 pub 하위 커맨드에서 함께 동작해요. 이런 것들이 있어요.
--help또는-h— 사용 정보를 출력해요.--trace— 오류가 발생했을 때 디버깅 정보를 출력해요.--verbose또는-v—--verbosity=all과 동일해요.--directory=<dir>또는-C <dir>— 지정한 디렉터리에서 커맨드를 실행해요.--[no-]color— 강조를 위해 출력에 색상을 추가해요(--color). 기본값은 터미널에서 이 커맨드를 쓰는지에 따라 달라져요. 터미널에서는--color가 기본이고, 그 외 환경에서는--no-color가 기본이에요. 모든 환경에서 색상을 끄려면--no-color를 쓰면 돼요.