将提供程序包添加到 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 项目时出错的主要内容,如果未能解决你的问题,请参考以下文章