今日、突如として webdev build
を実行すると webdev could not run for this project.
とエラー表示され、ビルドできなくなりました。
こういう原因らしいです。
This version of webdev does not support the `build_daemon` protocol used by your version of `build_runner`. A newer version of webdev is available which supports your version of the `build_daemon`. Please update.
何の事かわかりません(涙目
たぶん、 pub get
やれと言われ、無意識にやってこうなったのだと思います。
対策
pubspec.yaml
のdev_dependencies
で
build_runner: 1.6.1 build_daemon: 1.1.0
にバージョンを戻すよう設定したら webdev build
に成功するようになりました。
くわしい状況
エラーの補足に Please update.とあるので、極力アップデートする方向でなんとかならないか調べていたのですが、うまくいきませんでした。
新規プロジェクトでHelloWorld的なやつも作ったのですが、それもビルドに失敗するようになっていました。
(どうやら私のクソコードが原因では無いようです)
その時の pubspec.yaml
のdev_dependencies
の内容。build_daemon
は特に指定していませんでした。
dev_dependencies: build_runner: ^1.4.0 build_web_compilers: ^2.0.0 pedantic: ^1.0.0 json_serializable: ^2.0.0
この記述だとbuild_runner: 1.6.4
build_daemon: 2.0.0
となってしまうようです。
pubspec.lock
の内容
build_runner: dependency: "direct dev" description: name: build_runner url: "https://pub.dartlang.org" source: hosted version: "1.6.4" build_daemon: dependency: transitive description: name: build_daemon url: "https://pub.dartlang.org" source: hosted version: "2.0.0"
バージョンを上げる方向で調べていて埒があかなかったので、輝いていたアノ頃を思い出しながら、ぽちぽちバージョンを戻していきました。
build_runner | build_daemon | 結果 | 原因 |
---|---|---|---|
1.6.4 | 2.0.0 | NG | ビルドエラー |
1.6.3 | 2.0.0 | NG | ビルドエラー |
1.6.2 | 2.0.0 | NG | ビルドエラー |
1.6.1 | 2.0.0 | NG | packageのバージョンが合わない |
1.6.4 | 1.1.0 | NG | packageのバージョンが合わない |
1.6.3 | 1.1.0 | NG | packageのバージョンが合わない |
1.6.2 | 1.1.0 | NG | packageのバージョンが合わない |
1.6.1 | 1.1.0 | OK |