今日、突如として 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 |