将提供程序包添加到 Flutter Web 项目时出错

Posted

技术标签:

【中文标题】将提供程序包添加到 Flutter Web 项目时出错【英文标题】:Error when adding provider package to flutter web project 【发布时间】:2019-10-25 08:41:38 【问题描述】:

我尝试将provider包添加到我的flutter web项目中,出现以下错误:

因为每个版本的 provider 都依赖于来自 sdk 的 flutter any,这是 >forbidden 的,provider 是被禁止的。 因此,由于 WebApplication 依赖于提供者 ^3.0.0,版本解决>失败。

Flutter 用户应该运行 flutter packages get 而不是 pub get。 进程以退出代码 69 结束

我尝试了flutter packages get 并将flutter升级到了最新版本。 运行flutter packages get 时未显示错误,但当我尝试webdev serve 时显示以下错误:

webdev 无法为此项目运行。 在 >“C:\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\provider-3.0.0”中找不到名为“pubspec.yaml”的文件。

我也看了广告https://github.com/flutter/flutter/issues/21338,但没有解决我的错误。

我正在使用 Flutter(Channel beta,v1.6.3,在 Microsoft Windows [版本 10.0.17134.765],语言环境 de-DE)

environment:
  sdk: '>=2.3.0-dev.0.1 <3.0.0'

dependencies:
  flutter_web: any
  flutter_web_ui: any
  provider: ^3.0.0

dev_dependencies:
  build_runner: ^1.4.0
  build_web_compilers: ^2.0.0
  pedantic: ^1.0.0

【问题讨论】:

因为 Flutter Web 需要 beta 通道 null 安全是必需的。迄今为止有一个预发布版 5.0.0v @pub.dev/packages/provider/versions/5.0.0-nullsafety.2 【参考方案1】:

您的问题已经在这里得到解答:https://github.com/rrousselGit/provider/issues/82

使用 kevmoo 的 https://github.com/kevmoo/provider povider fork 的 flutter_web 分支作为:

dependencies:
  flutter_web: any
  flutter_web_ui: any
  provider: any

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

【讨论】:

【参考方案2】:

您可以通过从 github 获取源代码包并在包内的 lib 文件中获取代码并将其放入您的项目中,并通过将路径导入更改为:import 'package 来修复文件内部可能发生的错误:flutter_web/material.dart';并且可能需要进行更多更改。

它将 100% 工作,非常简单:)

【讨论】:

以上是关于将提供程序包添加到 Flutter Web 项目时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何将flutter_web迁移到蜂鸟中颤动?

Flutter Web - 使用电话选择图像

将firebase添加到flutter web时出现问题,TypeError:无法读取未定义的属性(读取“应用程序”)

如何将示例项目添加到 Flutter 包中?

Flutter 在项目中使用动画(不使用包)

Flutter in WEB