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

build_runner: 1.6.1
build_daemon: 1.1.0

にバージョンを戻すよう設定したら webdev build に成功するようになりました。

くわしい状況

エラーの補足に Please update.とあるので、極力アップデートする方向でなんとかならないか調べていたのですが、うまくいきませんでした。

新規プロジェクトでHelloWorld的なやつも作ったのですが、それもビルドに失敗するようになっていました。
(どうやら私のクソコードが原因では無いようです)

その時の pubspec.yamldev_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

元記事はこちら

Flutter Web: webdev could not run for this project.