Я новичок во Flutter и Dart.
Недавно я познакомился с новым проектом: восстановить флаттер-проект трехлетней давности. Никаких обязательств не было сделано в течение 3 лет.
Все зависимости находятся в старой устаревшей версии (никто не был null safety
) или устарел, Flutter и Dart SDK обновляются уже 3 года.
Моя проблема: как мне правильно «обновить» этот проект? Есть ли хороший способ/метод «перенести» старый проект на самое последнее обновление Dart SDK/Flutter и его зависимостей?
Сначала я обновляю, заменяю и удаляю все необходимые зависимости (зависимости без null safety)
и запускаю команду flutter pub upgrade --major-versions
. Результатом этого стало 1000 ошибок в коде из-за изменения, удаления и обновления зависимостей.
Во время исследования я нашел команду dart migrate
, но в Dart 3 она была удалена.
Я не знаю, выберу ли я хороший способ восстановить этот проект Flutter. Я хочу знать, есть ли лучший способ сделать это (очевидно, я запускаю команду dart fix --apply
, она исправляет некоторые мелкие ошибки).
Заранее спасибо за ответы!
Да, я уже включил нулевую безопасность в проекте. Теперь моя работа — исправить эти 1000 ошибок. Если мне придется разбираться со всеми ошибками одну за другой, это будет ОЧЕНЬ утомительная работа. Неужели нет способа быстро перенести все из этой старой версии в более новую? Если его действительно нет, я принимаю свою судьбу. Спасибо за ваш ответ!
Многие вещи были удалены, поэтому я не знаю лучшего способа.
Да, в самом деле. Спасибо за помощь.
Ознакомьтесь с журналами изменений, особенно с критическими изменениями.
У меня есть видео об использовании Puro, чтобы сначала установить версию, которая поддерживает дарт-миграцию, а затем обновить ее до текущей версии: youtube.com/watch?v=olqmK-opexA
Для перехода на нулевую безопасность я рекомендую вам использовать интерактивный инструмент миграции, предлагаемый с помощью команды dart migrate
.
https://dart.dev/null-safety/migration-guide#migration-tool
А вообще рекомендую прочитать там всю страницу, там действительно полезная информация и подсказки, как сделать именно то, что вы пытаетесь сделать :)
Вдобавок к этому, как упоминалось на этой странице, вам следует использовать Dart 2.19.6 для запуска инструмента миграции и после миграции обновиться до следующей версии. Вероятно, это также будет означать обновление до «промежуточных» версий ваших зависимостей, которые все еще поддерживают эту версию Dart.
Как уже говорили другие комментаторы, это будет довольно утомительно, но, надеюсь, этот инструмент может немного помочь.
Хорошо, спасибо. Я попробую еще раз. Возможно, я использовал неправильную версию Dart.
Хорошо, наконец-то я пытаюсь использовать эту команду, но это невозможно, потому что предыдущие люди до меня, которые прикасались к коду, были очень некомпетентны, и все пакеты конфликтуют со своими зависимостями, поэтому невозможно запустить эту команду. Но это в теории эта команда работает, просто в моем случае она не запустится из-за зависимостей. Спасибо большое за ответы, ребята!
вы используете версию SDK 2/3 для обновления проекта, сначала включаете нулевую безопасность, затем переходите к текущей версии, да, это будет утомительная работа.