Flutter: переопределить пакет паба с помощью определенной фиксации с сохранением зависимостей

У нас возникла проблема с пакетом flutter_html в нашем проекте после обновления флаттера, но есть потенциальное исправление, представленное в качестве PR другим пользователем github. Проблема в том, что я не могу заставить их изменения переопределить базовый пакет, а именно потому, что мы также используем flutter_html_table, который полагается на flutter_html для разрешения своей версии с помощью flutter pub get.

Вот что я пытался использовать в файле pubspec.yaml проекта:

flutter_html: ^3.0.0-alpha.6
flutter_html_table: ^3.0.0-alpha.3

dependency_overrides:  
flutter_html:
  git:
    url: https://github.com/Sub6Resources/flutter_html.git
    ref: 6908733505732bff93a5e7d45e822bd837c16c5b

Но изменения, внесенные в коммит git, на который я сослался как dependency_override, не отражаются в исходном коде плагина, когда я проверяю его внутри проекта. Это после того, как я запустил flutter clean, чтобы убедиться, что кэшированные версии не используются вместо этого.

Я также пытался поменять местами версии пакета git/pub.dev, но это не решается при сборке проекта, поэтому я предполагаю, что это неправильный подход.

Я также только что попытался запустить flutter pub cache repair, чтобы убедиться, что кеш действительно очищен, но это все еще не влияет на внесение изменений из фиксации в мой проект.

В репозитории github.com/Sub6Resources/flutter_html.git такого 690873... коммита нет. Просматривая PR, я предполагаю, что вы имеете в виду github.com/Sub6Resources/flutter_html/pull/1191 . Для этого вам нужно будет использовать репозиторий для соответствующего форка ( github.com/darkstarx/flutter_html.git ). Либо примените патч к своему собственному локальному клону flutter_html репозитория и используйте dependency_overrides, чтобы обратиться к вашей локальной копии.

jamesdlin 18.11.2022 21:50

Спасибо за ответ @jamesdlin :) Я заменил ссылку, чтобы использовать то, что вы там упомянули, и теперь все работает нормально. Однако, когда я запускаю свое приложение, проблемные виджеты по-прежнему ссылаются на исходный пакет, а не на пакет из ссылки переопределения. Нужно ли мне изменить импорт, чтобы он указывал на пакет git?

TDuff 21.11.2022 11:28

Я решил это сейчас, спасибо! Оставляю свой предыдущий комментарий, чтобы помочь другим найти его.

TDuff 21.11.2022 11:55
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Проблема возникла из-за того, что dependency_overridesприменяются только к пакету, который они определены в. Поскольку мой проект имеет несколько зависимостей (приложение, ядро, типы и т. д.), и я определял переопределение в «ядре», пакет «приложение» (который зависит от «ядра») использовал исходный пакет flutter_html вместо переопределенного. .

Перемещение переопределения зависимости в пакет моего приложения pubspec.yaml решило проблему :)

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