【Flutter】神パッケージimport_sorterの使い方とflutter_genが消えてしまう一時的ワークアラウンド

Dart

概要

どうも、@daiki1003です!

僕のプロジェクトでは、import_sorterパッケージを使っています。

import_sorter | Dart Package
Automatically organize your dart imports

import文は出来る限りソートしておきたいわけですが、
かと言ってPRの度に目を凝らして毎回importを確認するのは大変です。

そんな時に、冒頭で説明したimport_sorterパッケージがとても役に立つのです。

import_sorterパッケージの導入

パッケージの導入に関しては、以下記事で紹介しております。

【超簡単!】Flutterのパッケージのインストール方法を説明するよ!
概要 Flutter(Dart)で画像のクリッピングするコードが書けますか? Flutter(Dart)でhttp通信するコードが書けますか? 大丈夫、書けなくて良いんです。 Flutterでは、色んな人が使いそ...

import_sorterの主な使い方

$ flutter pub run import_sorter:main

とやるだけで、lib及びtest以下のフォルダのimportがソートされます。

結果は、実行例は以下の通り。

before

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/physics.dart';
import 'package:flutter/painting.dart';
import 'package:intl/intl.dart';
import 'package:mdi/mdi.dart';
import 'package:provider/provider.dart';
import 'anotherFile.dart';
import 'package:example_app/anotherFile2.dart';
import 'dart:async';
import 'dart:io';
import 'dart:js';

after

// Dart imports:
import 'dart:async';
import 'dart:io';
import 'dart:js';

// Flutter imports:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/physics.dart';

// Package imports:
import 'package:intl/intl.dart';
import 'package:mdi/mdi.dart';
import 'package:provider/provider.dart';

// Project imports:
import 'package:example_app/anotherFile2.dart';
import 'anotherFile.dart';

僕のプロジェクトの場合は、コメント部分がいらないと思ったので
設定して消しています。

flutter_genが消えてしまう!解決法とは?

さて、かなりのプロジェクトではここまでで相当助かっていると思うのですが
僕のプロジェクトの場合はそうではありませんでした。

flutter_genのimportが消えてしまうのです。

これに関しては、

flutter_gen Package Import Gets Deleted · Issue #34 · fluttercommunity/import_sorter
Describe the bug Without a comment on the same line the import 'package:flutter_gen/gen_l10n/translations.dart'; gets removed when running flutter pub r...

と、Issueがあがっているのですが最後のコメントが2020/12/15で止まってしまっています。

今出来る対処法は import_sorter:keep

そこで今使えるワークアラウンドは消えてしまうflutter_genのimportの最後に
import_sorter:keepを追加することです。

// befor
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

// after
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; // import_sorter:keep

これで、同じ様に実行すると消えずにソートされているはずです。

誰かのお役に立てば。

Twitterフォローお願いします

「次回以降も記事を読んでみたい!」
「この辺分からなかったから質問したい!」

そんな時は、是非@daiki1003のフォローお願いします♪

また、記事がとても役に立ったと思う人は
コーヒーを奢っていただけると非常に嬉しいです!

コメント

タイトルとURLをコピーしました