import_path_converter(Fluter Package) 소개 및 사용 예

개시하다


'pub'라는 소프트웨어 패키지를 만들다.dev에 공개되었기 때문에 그 소개와 실용적인 사용법을 소개하고 싶습니다.
https://pub.dev/packages/import_path_converter
GiitHub의 창고는 여기 있습니다.
https://github.com/ymgn9314/import_path_converter

어떤 포장

import_path_converter는 상대 경로 가져오기와 패키지 경로 가져오기를 자동으로 변환하는 데 사용되는 도구 시스템 패키지입니다.
사용 방법은 간단하다. 패키지를 설치한 후 다음 명령만 실행하면 데이터 파일의 가져오기를 변환할 수 있다.
flutter pub run import_path_converter:main
예를 들어, 이러한 상대 경로로 가져온 파일의 경우
import 'common/constants.dart';
import '../app.dart';
이렇게 가져오는 매크로 패키지 경로로 변환합니다(역변환도 가능).
import 'package:example/common/constants.dart';
import 'package:example/app.dart';

설치 방법 및 설정 정보


다음 dev-를 설치합니다.dependencies에 추가될 뿐입니다.
dev_dependencies:
  import_path_converter: ^1.0.1
pubspec.yaml에 다음 설정을 적으십시오. 상대 경로로 변환할지 패키지 경로로 변환할지, 변환하지 않는 파일을 지정할 수도 있습니다.
import_path_converter:
  relative: true # true->相対パスに変換, false->パッケージパスに変換(デフォルト: false)
  ignored_files: # 無視するファイルを正規表現で記述(デフォルト: [])
    - \/lib\/*
기타 사용 방법은 문서를 참조하십시오.

실용적인 사용 방법에 관하여


이 포장을 만드는 목적은 팀 개발 시 도입 표지의 편차를 방지하기 위해서다.
가져오는 순서, 가져오는 경로의 표시가 사람마다 다를 경우 기트에 차점을 보이거나 댓글에 지적해야 해 상당한 부담이 될 수 있다.
이 문제를 해결하기 위해 Git의 Git Hooks라는 기능import_path_converter을 사용할 때 자동으로 형식을 실행하는 방법을 소개하고 싶습니다.
그 전에...
이번에 소개한 방법은 git commit의 포장도 함께 사용하니 먼저 설치하세요.
(참고로 import_sorter는 포크import_path_converter로 만들었어요.)
https://pub.dev/packages/import_sorter

Git Hooks(pre-commiit) 파일 만들기


Giit Hooks의 설정은 매우 간단합니다. 프로젝트 루트의 import_sorter 에서 .git/hooks 의 이름으로 아래의 파일을 설정합니다.pre-commitgit commitimport_sorter,import_path_converter 3개가 자동으로 실행됩니다.
flutter format의 파일은 모두 포맷된 파일이다.

Git Hooks 설정을 로컬로 복제할 스크립트 생성


깃훅스는 git push에 설정돼 있어 git 관리가 불가능하다.
따라서 Git Hooks의 설정을 로컬로 복제하는 스크립트를 미리 준비하여 전체 구성원이 공통적으로 사용할 수 있도록 하는 것이 좋습니다.
다음은 예이다.
상술.git/hookspre-commit에 배치하고 Giit로 관리한다.
아래의 조개 각본은 script/git_hook/이다.
#!/bin/sh

# Stageにある拡張子がdartのファイルをforループする
for FILE in `git diff --staged --name-only --diff-filter=AM | grep -e .dart`; do
    # もし.dart以外の拡張子に対しても何か処理を行いたい場合は、次のように拡張子で判別する
    # また、for文のgrep箇所を、grep -e .py -e .dart のように複数拡張子を指定することもできる
    # if [ ${FILE##*.} = "js" ]; then
    # fi

    # excec import_path_converter
    echo "Running import_path_converter..."
    flutter pub run import_path_converter:main $FILE

    # excec import_sorter
    echo "Running import_sorter..."
    flutter pub run import_sorter:main $FILE

    # excec flutter format
    echo "Running flutter format..."
    flutter format $FILE

    git add $FILE
done
이 기초 위에서 다음 작업을 수행할 때 설정 파일은 로컬script/copy_git_hook.sh에 복사됩니다.
DSTDIR=.git/

if [ ! -d $DSTDIR ]; then
    echo ".git/ directory not found. Please move to project root."
    exit 1
fi

cp script/git_hook/pre-commit .git/hooks
chmod +x .git/hooks/pre-commit

echo "Successfully copied!"
프로젝트를 설치할 때 모든 개발자가GitHooks를 설정하는 것이 매우 효과적일 것이라고 생각합니다.

추기 (2021/11/02)


이 기사에 대해 Tweet에서 여러분께 이런 정보를 얻었습니다!.git/hooks에 이 규칙을 쓰면 상대 경로로 가져온 곳에 경고를 보낼 수 있습니다.
https://dart-lang.github.io/linter/lints/avoid_relative_lib_imports.html

최후


여기까지 읽어주셔서 감사합니다!
만약 오류가 있다면 GitHub에 보고할 수 있다면 정말 좋겠습니다!

참고 문헌


  • 제출 전에 자동으로 형식 설정을 조정하고 창고에서 형식을 통일합니다

  • 프리-commiit에 이런 자동 댓글이 있어요!다시 일하지 않는 게 최고야!
  • 좋은 웹페이지 즐겨찾기