Flutter 프로젝트에서 script를 정의해서 사용하기 (like package.json)

이우길·2024년 3월 20일
0

flutter

목록 보기
4/9
post-thumbnail

Goal

  • node.js기반의 프로젝트들 처럼 pubspec.yaml 파일에 스크립트 정의하여 사용하기.

개요

Flutter 프로젝트를 진행하면서 node.js 기반처럼 스크립트를 정의해두고 불러와 사용할 수 있는 방법이 없는지 찾던 도중 해당 기능을 제공해주는 derry, rps, flutter_scripts 등의 라이브러리을 찾을 수 있었다.

가장 직관적인 derry를 이용하여 구현해보기로 하였다. (대부분 라이브러리들이 1버전을 넘지 못했으며 그나마 derry가 1버전을 넘겼으며 github start 수도 가장 많았다.)


라이브러리 설치

라이브러리를 설치하는건 간단하다. 프로젝트에 추가를 하는 것이 아니라 dart에 글로벌로 설치하여 사용하면 된다.

dart pub global activate derry

처음으로 라이브러리를 설치하는 경우 pub cache의 경로가 환경변수로 잡혀있지 않을 것이다.

그런경우 pub cache의 경로를 아래와 같이 추가해주면 된다.

# pub cache
export PATH="$PATH":"$HOME/.pub-cache/bin"

스크립트 정의하기

라이브러리 doc를 확인하며 pubspec.yaml파일에 스크립트를 추가하면 된다. 이전 글에서 프로젝트를 실행시킬 때 환경변수를 입력해 실행 시킬 수 있었던 것을 볼 수 있을 것이다.

flutter run --dart-define=env=dev

위 스크립트를 derry를 이용하여 정의하면 아래와 같다.

scripts:
    run_dev: flutter run --dart-define=env=dev

위와 같이 정의 후 터미널에서 derry run_dev를 입력하면 프로젝트가 정상적으로 실행되는 것을 볼 수 있다.

추가적으로 필자는 supabase 관련 스크립트를 정의할 때도 사용하였는데 derrynested script를 지원하기 때문에 아래와 같은 형식으로 스크립트 작성이 가능하다.

@pubspec.yaml
scripts:
    supabase:
      migration:
        - supabase migration new $1
      # ...

@zsh
derry run supabase migration -- ${마이그레이션 스크립트 명}

# ex
derry run supabase migration -- create_profile_table

derry를 이용할 때 argument를 이용하고 싶다면 $순번를 스크립트에 정의하고 실행할 때 -- ${value}를 순차적으로 입력하면 된다.


REFERENCES

profile
leewoooo

0개의 댓글