Flutter web не может использовать пакеты из мобильного проекта - PullRequest
0 голосов
/ 30 октября 2019

Несколько месяцев назад я сделал приложение для Android, используя флаттер. Приложению требуются различные зависимости, такие как intl, кэшированный сетевой образ, стопор, carousel_slider и т. Д.

Тогда прямо сейчас я хочу преобразовать проект в flutter_web. Вот шаги, которые я сделал:

  1. clone github web flutter
  2. Я запускаю команду "flutter packages pub global activ webdev"
  3. Затем я отредактировал pubspec. yaml и я настроили его на pubspec.yaml в предыдущем проекте (проект android)

Вот содержимое pubspec.yaml в проекте веб-флаттера:

name: flutter_web.examples.hello_world

environment:
  # You must be using Flutter> = 1.5.0 or Dart> = 2.3.0
  sdk: '> = 2.3.0-dev.0.1 <3.0.0'

dependencies:
  flutter_web: any
  flutter_web_ui: any
  stopper: ^ 1.0.1

dev_dependencies:
  build_runner: ^ 1.4.0
  build_web_compilers: ^ 2.0.0

dependency_overrides:
  flutter_web:
    git:
      url: https://github.com/flutter/flutter_web
      path: packages / flutter_web
  flutter_web_ui:
    git:
      url: https://github.com/flutter/flutter_web
      path: packages / flutter_web_ui
  provider:
    git:
      url: https://github.com/kevmoo/provider
      ref: flutter_web

КогдаЯ запускаю 'pub dev', возникает ошибка при разрешении ограничителя пакета. Затем я попытался открыть github из ограничителя пакета (https://github.com/aryzhov/flutter-stopper),, после чего я проверил файлы в папке lib. Там я обнаружил файл с именем stopper.dart. Оказывается, в файле все еще используется импорт 'package: flutter / material.dart '; Это приводит к моей ошибке pubspec. Поскольку код должен быть заменен импортом' package: flutter_web / material.dart ';

Поэтому я попытался перехитрить проблему, удаливограничитель зависимостей на pubspec.yaml, затем я вручную создал файл stopper.dart, затем сохранил его в папке lib / mypackages. После этого я импортирую файл stopper.dart из папки lib / mypackages (его больше нет в пакете).

Стопор пакетов - это только один из пакетов, которые я использую в своем проекте Android. На самом деле есть много других пакетов, которые имеют ту же проблему, что и стопор пакетов. Дело в том, что я должен создать пакетвручную, затем я изменяю "package: flutter / ..." на "package: flutter_web /" вручную, затем могу импort их.

Что я хочу спросить, есть ли более элегантный и простой способ?

1 Ответ

0 голосов
/ 30 октября 2019

Привет, инструкция, которую вы выполняете, взята из старого репозитория здесь . Как вы можете видеть, это прекращено. Вы можете найти информацию в REadme.

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

  1. Сначала вам нужно будет включить флаттер, используя flutter config --enable-web.
  2. Тогда вам придется бежать flutter create .
...