Flutter Web无法使用来自移动项目的软件包

时间:2019-10-30 00:39:00

标签: flutter dart flutter-dependencies flutter-web

几个月前,我使用flutter开发了一个android应用程序。该应用程序需要各种依赖项,例如intl,缓存的网络映像,塞子,carousel_slider等。

然后现在我想将项目转换为flutter_web。这是我执行的步骤:

  1. 克隆github网络抖动
  2. 我运行命令“ flutter packages pub globalactivate webdev”
  3. 然后我编辑了pubspec.yaml,并在上一个项目(android项目)中将其调整为pubspec.yaml

这是Web flutter项目中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'时,解决软件包停止器时发生错误。然后,我尝试从包停止器(https://github.com/aryzhov/flutter-stopper)中打开github,之后检查了lib文件夹中的文件。在那里,我找到了一个名为stopper.dart的文件。事实证明,在文件中,仍在使用 导入'package:flutter / material.dart'; 因此,这使我的pubspec错误。因为该代码应替换为 导入“包:flutter_web / material.dart”;

因此,我试图通过删除pubspec.yaml上的依赖项停止器来解决问题,然后手动创建了stopper.dart文件,然后将其保存在lib / mypackages文件夹中。之后,我从lib / mypackages文件夹中导入stopper.dart(不再通过该软件包)。

程序包停止器只是我在Android项目中使用的程序包之一。实际上,还有许多其他包装与包装塞有相同的问题。关键是我必须手动创建软件包文件,然后将“ package:flutter / ...”手动更改为“ package:flutter_web /”,然后才能导入它们。

我想问的是,还有一种更优雅,更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

您好,下面的说明来自旧的存储库here。如您所见,这已停产。您可以在REadme中找到该信息。

相反,您应该遵循此page中的说明。仔细阅读一次,我建议保留您的主要项目的备份并进行复制。

  1. 首先,您必须使用flutter config --enable-web启用flutter-web。
  2. 然后,您将必须运行flutter create .