🥺

Dart: import, relative path ? package ?

2022/05/06に公開

Flutter で Hive を使用している箇所でデグレを起こした…

https://pub.dev/packages/hive

症状としては…

  • 今まで .get(boxName) で取り出せていた instance が null になる
  • 今まで .save(boxName, object) で保存出来ていたものが出来なくなった。Adaptor 呼んだ? とエラーで言われる

Hive を定義しているファイルのパス名を修正したのだった…
その後の import を変えてしまっていた

import '../directory/a_hive.dart';

import 'package/project_name/directory/a_hive.dart';

もとに戻すと、何事もなかったように動作した

言われてみれば import について考えたことなかった。反省した。即調べた。
すると何と…
TDLR: 「たまに違うものになる」らしい…
https://stackoverflow.com/a/47142052/10910114

Linter Rules では prefer_relative_imports として推奨されていた。
今後は意識して行く。
https://dart.dev/tools/linter-rules#prefer_relative_imports

Discussion