flutter web enableが切り替わらない

flutter webとスマートフォンの環境を併存したくて、 fvmを導入しましたが、うまく切り替わらず。

バージョンは切り替わるんですが、webの有効化みたいなのが 切り替わらず。 ただ、この時にflutter create . を実行してもwebフォルダーは作られず

そしたら、何をもって切り替わらないといっているかというと、 pubspec.yamlでfirebase_authのバージョンを空で設定しているとき、 バージョンが「0.6.2+1」になってしまうということです。

fvmがインストールされてない環境だと、「0.18.4+1」 になります。

ここが何を言っているかわからないと思いますが、 webが有効化されている場合、web用のfirebase_authも 一緒にダウンロードされていて、それがほかのパッケージの バージョンと整合性を取るために適切なバージョンになるということみたいです。

※今回はfirebase_messagingに引っ張られた模様

もともと、flutter configはプロジェクトが変わったとしても、 一律で下記の設定を見てしまいます。(windows)

~\AppData\Roaming\.flutter_settings

ですが、ここで、"enable-web": false,にしても、 設定を消しても切り替わらず。

fvmは別の設定を見ているのか、どっかでキャッシュしているのか?

もちろん、fvmを削除すると、webはfalse状態になります。

というか、クリーンな環境で再度やってみましたが、 masterだとそもそもflutter createすると webフォルダが作成される。。。

新しすぎると、webがfalseにできないか、 明示的にfalseにするしかないのか?

1.27.0-5.0.pre.95の段階では、webをfalseにすると createした時にwebフォルダはできない様子。

wslにflutterをインストールして同居する戦略

~$ sudo snap install flutter --classic
Interacting with snapd is not yet supported on Windows Subsystem for Linux.
This command has been left available for documentation purposes only.

というわけでwget

ここで、テストするときchromeとかどう立ち上げるんだと 思って、この方法は見送り。

結局、fvmは使わない

windowsはいろいろハマって面倒、

github.com 特にCan't load Kernel binary: Invalid kernel binary format version

なので、直接flutterを2バージョンダウンロード ※stableと1.24.0-10.2.pre

stableはgit pullで1.24.0-10.2.preはzipでダウンロード

stableにはパスを通しておく

環境変数でpath設定をします。

設定しないでフルパスでflutter configなどを実行すると、 別windowが立ち上がって実行結果がすぐに消えるので。

この状態だと何とか安定していて、androidエミュレータchromeを別々のvscodeから開いて実行可能になりました。

蛇足: ちなみに、別windowをpowershellで回避してみる

Start-Process -NoNewWindow -Wait -ArgumentList config  C:\src\flutter\flutter_windows_1.24.0-10.2.pre-beta\bin\flutter.bat

長い。。。