Melosを使ってモノレポ構成にしてたときに、
flutter_genで設定した画像が読み込まれなかったときに、
いろいろ調査したときの備忘録(*´ω`*)
package_parameter_enabledを有効にすればよいっぽい
# pubspec.yaml flutter_gen: assets: outputs: package_parameter_enabled: true # <- Add this line.
そのときの構成
構成としては、こんな感じ。
appとwidgetbookの2つがあり、
widgetbookからapp/assets/icon.pngを含むWidgetを表示すると、
assetのパスが見つからずエラーになる
./
app/
assets/
icon.png # 利用しているアイコン
lib/
foo_component.dart # icon.pngを使ったWidget
pubspec.yaml
widgetbook/
lib/
foo_component.dart # foo_componentのカタログ
pubspec.yaml
melos.yaml
pubspec.yaml
package_parameter_enabledなしでもできる
packageに、自分のパッケージ名を設定すれば、適切なパスに設定できる
が、いちいちめんどくさいし、deprecatedなので、このオプションを使うのがよい
Widget build(BuildContext context) {
return Assets.icon.svg(
width: 120,
height: 120,
package: Assets.package,
);
}
build.yamlに設定しても有効にならない?
以下の感じで、build.yamlに設定したけど、うまく動作しなかった。
pubspec.yamlに書くほうがよさそう
targets: $default: builders: flutter_gen: options: assets: outputs: package_parameter_enabled: true
以上!! これで、widgetbookの活用が捗りそう(*´ω`*)