build_runner 패키지: 파일 생성 명령어 모음
build_runner 패키지: 파일 생성 명령어 모음
build_runner 패키지는 파일을 생성하는 범용 명령어들을 제공해요. 생성된 파일을 테스트하거나, 소스 파일과 생성된 파일을 함께 서빙하는 작업까지 한 번에 처리할 수 있어요. 이 페이지에서는 build_runner를 어떻게 쓰는지 설명할게요. 특정 패키지에서 build_runner를 사용하는 방법을 알고 싶다면, 그 패키지의 문서를 참고하세요.
출처: build_runner
본문
build_runner 명령어는 builder라는 개념과 함께 동작해요. builder는 Dart 빌드 시스템을 이용해 입력 파일에서 출력 파일을 만들어 내는 패키지예요. 예를 들어 json_serializable이나 built_value_generator 패키지는 Dart 코드를 생성하는 builder를 정의해요.
Dart 빌드 시스템은 리플렉션(reflection, 성능 문제가 있어요)이나 매크로(macros, Dart 컴파일러가 지원하지 않아요)의 좋은 대안이 되는데요, 사실 Dart 코드를 읽고 쓰는 것보다 더 많은 일을 할 수 있어요. 예를 들어 sass_builder 패키지는 .scss와 .sass 파일에서 .css 파일을 생성하는 builder를 구현해요.
build_runner 설정하기
build_runner를 사용하려면, 앱의 pubspec에 build_runner를 dev dependency로 추가하세요.
dev_dependencies:
# ···
build_runner: ^2.15.1
build_test: ^3.5.16
build_test에 의존하는 것은 선택이에요. 코드를 테스트할 거라면 추가하면 돼요.
pubspec.yaml을 바꾼 후에는 늘 그렇듯 dart pub get이나 dart pub upgrade를 실행해요.
$ dart pub get
내장 명령어 사용하기
다음은 build_runner의 build 명령어를 사용하는 예시예요.
$ # pubspec.yaml 파일이 있는 디렉터리에서 실행하세요:
$ dart run build_runner build
build_runner 패키지는 다음과 같은 명령어들을 포함해요.
- build — 일회성 빌드를 수행해요.
- serve — 개발 서버를 실행해요. 이 명령어를 직접 쓰기보다는 편리한 기본 동작을 가진
webdev serve를 사용할 수 있어요. - test — 테스트를 실행해요.
- watch — 입력 파일의 수정을 감시하는 빌드 서버를 띄워요. 변경이 생기면 증분(incremental) 재빌드를 수행해요.
더 알아보기
- webdev 가이드 (웹 전용 코드를 작업한다면 사용하세요)
- build_runner 가이드
build_runner의존성이 있는 패키지build의존성이 있는 패키지