先日,久々にflutterを使おうとmiseで最新版をインストールしたら,以下のエラーが出たので,直し方を残しておきたいと思います.
発生した問題と原因
まず,flutterを以下のように持ってきました.
mise use flutter@3.22.1-stableすると,以下のエラーが!!
mise ERROR failed to parse template fromJSON(body).releases | filter({ #.channel == "stable"}) | map({#.version}) | sortVersions() in ~/test/mise.toml
mise ERROR Failed to parse '__tera_one_off'
mise ERROR --> 1:95
|
1 | fromJSON(body).releases | filter({ #.channel == "stable"}) | map({#.version}) | sortVersions()
| ^---
|
= expected a comment end (`#}`)
mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information
mise ERROR failed to parse template fromJSON(body).releases | filter({ #.channel == "stable"}) | map({#.version}) | sortVersions() in ~/test/mise.toml
mise ERROR Failed to parse '__tera_one_off'
mise ERROR --> 1:95
|
1 | fromJSON(body).releases | filter({ #.channel == "stable"}) | map({#.version}) | sortVersions()
| ^---
|
= expected a comment end (`#}`)
mise ERROR Run with --verbose or MISE_VERBOSE=1 for more informationまあ,まずはログを見てみます.
failed to parse template fromJSON(body).releases | filter({#.channel == "stable"}) | map({#.version}) | sortVersions() in ~/test/mise.toml
...中略
= expected a comment end (`#}`)なるほど,つまり,tomlのコメントの終わりが(#}) になっていないようですね.
しかし,内容を見た限り,これはコメントではなく,filterやmapに使われていそう.
なので,{# のあとをコメントと勘違いしているだけのような気がします.
解決方法
mise.tomlにかかれている{# を{ # にする(スペースを入れる)ことで解決できました.
具体的には以下のように変更します.
[変更前]
[linux-x64]
url = 'https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_{{ version | replace(from="-stable", to="") }}-stable.tar.xz'
""", url = 'https://storage.googleapis.com/flutter_infra_release/releases/stable/{{ os() }}/flutter_{{ os() }}{{ arch(x64="", arm64="_arm64") }}_{{ version | replace(from="-stable", to="") }}-stable.zip', version_expr = 'fromJSON(body).releases | filter({#.channel == "stable"}) | map({#.version}) | sortVersions()', version_list_url = "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json" }[変更後]
[linux-x64]
url = 'https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_{{ version | replace(from="-stable", to="") }}-stable.tar.xz'
""", url = 'https://storage.googleapis.com/flutter_infra_release/releases/stable/{{ os() }}/flutter_{{ os() }}{{ arch(x64="", arm64="_arm64") }}_{{ version | replace(from="-stable", to="") }}-stable.zip', version_expr = 'fromJSON(body).releases | filter({ #.channel == "stable"}) | map({ #.version}) | sortVersions()', version_list_url = "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json" }終わりに
今後(近日中)に修正されるとは思いますが,同じように困っている方の参考になれば幸いです.


コメント