Хороший способ восстановить заброшенный проект Flutter трехлетней давности?

Я новичок во 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, она исправляет некоторые мелкие ошибки).

Заранее спасибо за ответы!

вы используете версию SDK 2/3 для обновления проекта, сначала включаете нулевую безопасность, затем переходите к текущей версии, да, это будет утомительная работа.

Md. Yeasin Sheikh 04.07.2024 10:48

Да, я уже включил нулевую безопасность в проекте. Теперь моя работа — исправить эти 1000 ошибок. Если мне придется разбираться со всеми ошибками одну за другой, это будет ОЧЕНЬ утомительная работа. Неужели нет способа быстро перенести все из этой старой версии в более новую? Если его действительно нет, я принимаю свою судьбу. Спасибо за ваш ответ!

Nimpô 04.07.2024 11:04

Многие вещи были удалены, поэтому я не знаю лучшего способа.

Md. Yeasin Sheikh 04.07.2024 12:34

Да, в самом деле. Спасибо за помощь.

Nimpô 04.07.2024 14:26

Ознакомьтесь с журналами изменений, особенно с критическими изменениями.

Randal Schwartz 06.07.2024 02:16

У меня есть видео об использовании Puro, чтобы сначала установить версию, которая поддерживает дарт-миграцию, а затем обновить ее до текущей версии: youtube.com/watch?v=olqmK-opexA

Randal Schwartz 06.07.2024 02:18
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для перехода на нулевую безопасность я рекомендую вам использовать интерактивный инструмент миграции, предлагаемый с помощью команды dart migrate.

https://dart.dev/null-safety/migration-guide#migration-tool

А вообще рекомендую прочитать там всю страницу, там действительно полезная информация и подсказки, как сделать именно то, что вы пытаетесь сделать :)

Вдобавок к этому, как упоминалось на этой странице, вам следует использовать Dart 2.19.6 для запуска инструмента миграции и после миграции обновиться до следующей версии. Вероятно, это также будет означать обновление до «промежуточных» версий ваших зависимостей, которые все еще поддерживают эту версию Dart.

Как уже говорили другие комментаторы, это будет довольно утомительно, но, надеюсь, этот инструмент может немного помочь.

Хорошо, спасибо. Я попробую еще раз. Возможно, я использовал неправильную версию Dart.

Nimpô 06.07.2024 14:56

Хорошо, наконец-то я пытаюсь использовать эту команду, но это невозможно, потому что предыдущие люди до меня, которые прикасались к коду, были очень некомпетентны, и все пакеты конфликтуют со своими зависимостями, поэтому невозможно запустить эту команду. Но это в теории эта команда работает, просто в моем случае она не запустится из-за зависимостей. Спасибо большое за ответы, ребята!

Nimpô 09.07.2024 00:17

Другие вопросы по теме