플러터(Flutter)의 pubspec.yaml
플러터 프로젝트를 새로 만들면 pubspec.yaml 파일을 볼 수 있습니다. Node.js의 package.json과 같은 패키지 의존성 관리 및 프로젝트 정의 등의 역할을 갖습니다.
pubspec.yaml 의 기본 정보입니다. 영어로 되어있는 주석을 한글로 번역했습니다.
Pubspec 상세
pubspec.yaml 파일은 확장자와 같이 YAML 규격으로 되어있습니다. 지원하는 필드의 종류는 다음과 같습니다.
- name : 패키지의 이름. underscore _ 를 사용하세요.(필수)
- version : 패키지의 버전을 의미합니다. (생략할 경우 0.0.0)
- description : 패키지의 설명을 적습니다. Pub에서 어떻게 출력되는지 볼 수 있습니다.
- author 또는 authors : 해당 패키지를 만든 사람을 표기합니다. 이름 <이메일> 형식으로 작성합니다.
- homepage : 패키지의 홈페이지가 있는 경우 적습니다.
- documentation : 문서가 있는 경우 적습니다.
- dependencies : 패키지가 사용하는 의존성 목록입니다.
- dev_dependencies : 패키지가 사용하는 개발용 의존성 목록입니다.
- dependency_overrides : 임시로 의존성을 오버라이드 해야하는 경우 적습니다.
- environment : Dart 2 프로젝트의 경우 적습니다.
- executables : 실행가능한 패키지인 경우 스크립트를 적습니다.
- publish_to : 기본 값은 https://pub.dartlang.org 입니다. none 이면 배포하지 않습니다.
Pub
플러터는 Pub이라는 패키지 매니저를 제공합니다. 같은 Pub 패키지매니저이지만 Dart는 기본적으로 pub
명령어를 그대로 사용하고, 플러터는 flutter package
명령어를 사용합니다.
pub
명령어의 종류입니다.
pub cache
: 추가한 의존성에 대한 캐시와 관련된 작업을 합니다.pub deps
: 의존성 그래프를 트리구조로 보여줍니다.pub downgrade
: 특정 패키지의 버전을 낮춥니다.pub get
: pubspec.yaml 에 있는 내용을 다운로드합니다.pub global
: 패키지를 전역으로 사용할 수 있도록 변경합니다.pub publish
: 패키지를 배포합니다.pub run
: 스크립트를 실행합니다.pub upgrade
: 패키지의 버전을 최신 버전으로 올립니다.pub uploader
: 패키지 업로더 정보를 수정(추가/제거)합니다.
플러터 프로젝트를 진행하는 도중 pub
명령어를 직접 사용할 일이 많지는 않습니다. 각 IDE에서 pubspec.yaml 에서 의존성 정보를 수정하면 백그라운드에서 새로 의존성을 다운받는 작업을 자동으로 해줍니다.
외부 의존성 추가 방법
dependencies 에서 사용할 패키지 추가 방법은 세가지 입니다.
- path : 파일시스템인 경우 path 를 적어줍니다. 여기서는 plugin1이 패키지 이름입니다.
dependencies:
plugin1:
path: ../plugin1
- git : Git 저장소를 이용하는 경우 url에 저장소 주소를 적어줍니다
dependencies:
plugin1:
url: git://github.com/flutter/plugin1.git
- git + path : Git 저장소의 특정 경로를 이용하는 경우 path까지 지정합니다.
dependencies:
plugin1:
url: git://github.com/flutter/packages.git
path: packages/package1
Dart Packages 는 npmjs.com 같은 패키지 저장소입니다. 플러터 또는 웹 혹은 모든 Dart 프로젝트에서 사용할 수 있는 패키지들을 볼 수 있습니다.
플러터 예제로 사용하는 english_words 패키지를 설치하는 방법을 알아봅니다.
dependencies 속성에 english_words: ^3.1.3와 같이 추가합니다.
플러터 프로젝트에서는 flutter packages get
다트 프로젝트에서는 pub get
을 이용해 의존성을 설치합니다. 물론 VSCode 등을 사용하면 자동으로 설치합니다.
실제 프로젝트에서 사용하려면 import 키워드를 사용합니다.
english_words를 이용하려면,
import 'package:english_words/english_words.dart';
를 사용하려는 Dart 코드에 적어주세요.