Flutter web 无法使用移动项目中的包

Posted

技术标签:

【中文标题】Flutter web 无法使用移动项目中的包【英文标题】:Flutter web cannot use packages from mobile project 【发布时间】:2020-02-25 06:34:04 【问题描述】:

几个月前,我使用 Flutter 制作了一个 android 应用程序。应用需要各种依赖,如intl、缓存的网络图片、stopper、carousel_slider等。

那么现在我想将项目转换为flutter_web。以下是我执行的步骤:

    克隆 github web flutter 我运行命令“flutter packages pub global activate webdev” 然后我编辑了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 的文件。原来在文件中,还在使用 导入'包:颤振/材料.dart'; 所以这使我的 pubspec 错误。因为代码应该替换为 导入'包:flutter_web/material.dart';

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

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

我想问的是,有没有更优雅、更简单的方法?

【问题讨论】:

【参考方案1】:

您好,您遵循的说明来自旧存储库here。如您所见,此功能已停产。您可以在自述文件中找到相关信息。

您应该按照page 中的说明进行操作。仔细阅读一遍,我建议您备份您的主要项目并制作副本。

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

【讨论】:

以上是关于Flutter web 无法使用移动项目中的包的主要内容,如果未能解决你的问题,请参考以下文章

无法运行 Dart 2 with / Angular for web 以及 Flutter for mobile 项目 - 计划共享代码

Flutter web 无法从包中加载资产

flutter项目中添加web支持

如何在 Flutter Web 中渲染 SVG?

无法将flutter现有项目更改为flutter web

在 Flutter Web 中使用 Flutter 移动包