#flutter #dart
Вопрос:
В моем пакете bottom_nav_layout я теряю 10 очков паба из-за форматирования dart. pub.dev говорит:
"lib/src/page_stack.dart doesn't match the Dart formatter."
Сообщение об ошибке можно найти здесь. Однако, когда я запускаю dart format .
или flutter format .
, файл-нарушитель не изменяется.
"... Unchanged libsrcpage_stack.dart ..."
Как решить эту проблему?
трепещущий доктор:
[√] Flutter (Channel stable, 2.2.3, on Microsoft Windows [Version 10.0.19042.985], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[√] Chrome - develop for the web
[√] Android Studio (version 4.1.0)
[√] VS Code (version 1.62.2)
[√] Connected device (3 available)
Комментарии:
1. Какую версию Dart вы используете для форматирования? Когда я форматирую код (с помощью Dart 2.14.4), происходит несколько изменений. Вы можете попробовать использовать dartpad.dev для форматирования кода, используя самую последнюю выпущенную версию Dart.
2. Я попробовал. Он разделил только следующую строку на 3 строки:
this..remove(pageIndex)..remove(pageIndex);
. Так это потому, что мой формат для дротиков устарел? Как я могу это исправить?3. Пожалуйста, начните с того, что скажите мне, какая версия вашей установки Dart установлена прямо сейчас. Кроме того, я ожидаю, что ваша установка Dart происходит от вашей установки Flutter? Если это так, вам просто нужно обновить Flutter до последней версии.
4. У меня есть » flutter: «>=1.17.0″` в моем файле yaml. Должен ли я обновить его? Смогут ли люди с более низкой версией flutter использовать этот пакет?
5. Я не говорю о том, что у вас есть в вашем файле YAML. Просьба опубликовать результаты выполнения:
flutter doctor
. Но да, похоже, у вас может быть очень старая версия Flutter, так как ваш проект даже не обновлен до Flutter 2.x.x. Какая-либо особая причина для того, чтобы ваш проект поддерживал Flutter 1.17.0?
Ответ №1:
Средство форматирования Dart изменило правила для каскадов в Dart 2.14 со следующим изменением, которое заставляет средство форматирования всегда разделять каскад в случае нескольких каскадов: https://github.com/dart-lang/dart_style/issues/1006
Это объясняет, почему существует разница в том, как форматируется ваш код при использовании Dart 2.13 (или более поздней версии) по сравнению с последней версией (Dart 2.14.x).
Поэтому, если вы хотите получить максимальное количество баллов в pub.dev, вам нужно использовать Dart 2.14 или более поздней версии для форматирования, поскольку pub.dev использует новые правила форматирования для каскадов при проверке правильности форматирования вашего кода.