`pubspec.yaml` 파일은 플러터 프로젝트의 핵심 구성 파일 중 하나이다. Dart 언어의 패키지 매니저인 `pub`이 사용하는 설정 파일이기도 하다. 이 파일은 프로젝트에 대한 메타데이터, 종속성, 리소스 등을 정의한다.
pubspec.yaml 주요 구성 요소
- name: 프로젝트의 이름으로, 패키지를 다른 곳에서 참조할 때 사용된다.
- description: 프로젝트에 대한 간단한 설명이다.
- version: 프로젝트의 버전 정보이다.
- environment: 프로젝트가 호환되는 Dart SDK 버전을 지정한다.
- dependencies: 프로젝트가 의존하는 외부 패키지들을 나열한다. 예를 들어, `firebase_core`나 `flutter_bloc`과 같은 패키지를 여기에 추가할 수 있다.
- dev_dependencies: 개발 중에만 필요한 종속성을 지정한다. 예를 들면, 유닛 테스트 라이브러리나 목(mock) 라이브러리 등이 여기에 포함될 수 있다.
- flutter: 플러터 관련 설정을 담는 섹션이다.
- assets: 프로젝트에 포함된 이미지, 폰트, 데이터 파일과 같은 자원의 경로를 지정한다.
- fonts: 사용자 정의 폰트를 포함시킬 때 이곳에 폰트 파일의 경로와 스타일을 정의한다.
- scripts: Dart 스크립트를 위한 커스텀 스크립트를 정의하는 섹션 (이것은 `pub`을 사용하는 일반적인 Dart 프로젝트에서 더 자주 볼 수 있다).
- executables: 특정 Dart 스크립트를 명령줄 도구로 사용하도록 설정하는 섹션이다.
- homepage: 패키지의 홈페이지나 저장소 URL을 지정할 수 있다.
- documentation: 패키지의 문서 URL을 지정할 수 있다.
- repository: 패키지의 소스 코드 저장소 URL을 지정한다. GitHub, GitLab, Bitbucket 등의 URL이 될 수 있습니다.
- issue_tracker: 사용자들이 버그를 신고하거나 기능을 요청할 수 있는 이슈 트래커의 URL을 지정한다.
- authors: 패키지의 저자나 유지 보수자 목록을 나열한다.
- license: 패키지에 적용된 라이선스를 나타낸다.
- executables: 특정 Dart 스크립트를 명령줄 도구로 사용하도록 설정한다.
- publish_to: Dart 패키지를 어디에 게시할지 지정하는 옵션으로, Dart 패키지를 pub.dev에 게시하지 않을 계획이라면 이 옵션을 통해 게시를 막을 수 있다.
이러한 추가적인 구성 요소들은 주로 패키지의 메타데이터를 보강하거나, 패키지를 더욱 사용자 친화적으로 만들기 위한 목적으로 사용된다.
pubspec.yaml 샘플코드
name: sample_package
description: A sample Dart package to demonstrate pubspec.yaml configuration.
version: 1.0.0
homepage: https://www.samplepackage.com
documentation: https://docs.samplepackage.com
repository: https://github.com/username/sample_package
issue_tracker: https://github.com/username/sample_package/issues
authors:
- Alice <alice@example.com>
- Bob <bob@example.com>
license: MIT
environment:
sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
dev_dependencies:
flutter_test:
sdk: flutter
publish_to: none
flutter:
assets:
- assets/logo.png
`publish_to`의 추가 설명:
`publish_to`는 `pubspec.yaml` 파일에서 종종 보게 되는 항목 중 하나로, Dart 패키지를 어디에 게시할지 지정하는 옵션이다. Dart 패키지를 pub.dev에 게시하지 않을 계획이라면 이 옵션을 사용하여 게시를 방지할 수 있다.
1. 공개 서버로 게시: 기본적으로 `publish_to`는 pub.dev로 설정되어 있으므로, 별도로 지정하지 않으면 패키지는 pub.dev에 게시된다.
2. 게시 방지: 패키지를 게시하고 싶지 않은 경우, 다음과 같이 설정할 수 있습니다. 이렇게 설정하면, `dart pub publish` 명령어를 실행할 때 "패키지를 게시하는 것이 금지되어 있음"이라는 메시지가 표시된다.
publish_to: none
3. 사설 저장소로 게시: 내부 조직이나 팀에서 자체 Dart 패키지 저장소를 운영한다면, 해당 저장소의 URL을 지정하여 패키지를 그곳에 게시할 수 있다.
publish_to: https://your-private-repository-url/
`pubspec.yaml` 파일을 수정한 후에는 `flutter pub get` 명령어를 실행하여 정의된 종속 항목들을 가져와야 한다.