Web対応がFlutter本体にマージされたということで移行してみます。
公式の情報は以下のようなものがあります。
FAQ
https://flutter.dev/docs/development/platform-integration/web
マイグレーションガイド
https://github.com/flutter/flutter/wiki/Upgrading-from-package
環境
upgradeで最新化。
1
2
3
4
5
6
$ flutter upgrade
$ flutter --version
Flutter 1.9.1+hotfix.2 • channel stable • https://github.com/flutter/flutter.git
$ flutter config --enable-web
Setting "enable-web" value to "true".
このstableチャンネルだとchromeが認識されなかったので、結局以下のmasterチャンネルを使いました。
1
2
3
4
$ flutter channel master
$ flutter upgrade
$ flutter --version
Flutter 1.10.2-pre.73 • channel master • https://github.com/flutter/flutter.git
これまでの運用
以下の秘伝のタレのようなシェル(build.sh
)で import
文を書き換えるなどの対応をしていました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/sh
echo "prepare" && \
rm -rf web/lib/app && \
cp -r ./lib web/lib/app && \
echo "replace" && \
find web/lib/app/*.dart | xargs sed -i "" -e "s/dart:ui/package:flutter_web_ui\/ui.dart/g" && \
find web/lib/app/*.dart | xargs sed -i "" -e "s/package:flutter\//package:flutter_web\//g" && \
echo "build" && \
cd web && \
webdev build && \
echo "docs" && \
cd .. && \
rm -rf docs
cp -r web/build docs
webディレクトリの作り直し
今までのものは消して、create
で作り直します。
1
2
3
$ rm -rf web/
$ rm build.sh
$ flutter create .
これだけでOK。
Chromeで動かす
1
$ flutter run -d chrome
めっちゃおばけが出てきますが、これだけで動きます。お手軽。
1
2
3
4
👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻
Warning: Flutter's support for building web applications is highly experimental.
For more information see https://github.com/flutter/flutter/issues/34082.
👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻 👻
Build
GitHub Pagesで公開したいのでbuildしてdocsに起きます。
1
2
3
$ flutter build web
$ rm -rf docs
$ mv build/web docs
この手順で移行したものが以下のページです。
https://tnantoka.github.io/moyo/
repoはこちら。
https://github.com/tnantoka/moyo
何事もなく移行できました。相変わらずFlutterのバージョンアップはスムーズです。