플러터(Flutter)의 pubspec.yaml

ChangJoo Park
5 min readSep 25, 2018

--

플러터 프로젝트를 새로 만들면 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

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 코드에 적어주세요.

--

--