🦋

FlutterWeb "serviceWorkerVersion" is deprecated

2024/11/04に公開

こんなWarningが出た

Warningなので、放っておいても開発はできるのだけれど、
AWSにdeployしようとしたら、これが出て止まってしまったので、仕方ない、直します。

Launching lib/main.dart on Chrome in debug mode...
Waiting for connection from debug service on Chrome...
Warning: In index.html:39: Local variable for "serviceWorkerVersion" is deprecated. Use "{{flutter_service_worker_version}}" template token instead. See https://docs.flutter.dev/platform-integration/web/initialization for more details.
Warning: In index.html:49: "FlutterLoader.loadEntrypoint" is deprecated. Use "FlutterLoader.load" instead. See https://docs.flutter.dev/platform-integration/web/initialization for more details.

39行目のほうには「触るな」と書いてあるんだが・・・

強引に直しました。
修正前

  <script>
    // The value below is injected by flutter build, do not touch.
    var serviceWorkerVersion = null;
  </script>

修正後

  <script>
    // The value below is injected by flutter build, do not touch.
    var serviceWorkerVersion = {{flutter_service_worker_version}};
  </script>

Buildし直したら戻っちゃうかな?と思ったけど、大丈夫だった。

49行目は

  <script>
    window.addEventListener('load', function(ev) {
      // Download main.dart.js
      -- _flutter.loader.loadEntrypoint({  <=ここを
      ++ _flutter.loader.load({         <=こう直した
        serviceWorker: {
          serviceWorkerVersion: serviceWorkerVersion,
        },
        onEntrypointLoaded: function(engineInitializer) {
          engineInitializer.initializeEngine().then(function(appRunner) {
            appRunner.runApp();
          });
        }
      });
    });
  </script>

Warning文の形とちょっと違う気もするけど、
documentをみると、これでいいらしい。

Warningは出なくなったけど

deployはまだほかにも問題があるので、まだできてない。
残念。

Flutter大学

Discussion