微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 pubspec 环境 / sdk / 使用 " '>=2.7.0 <3.0.0' " 而不是 " ^2.7.0 "

如何解决为什么 pubspec 环境 / sdk / 使用 " '>=2.7.0 <3.0.0' " 而不是 " ^2.7.0 "

我对semver的理解非常有限

这个

environment:
  sdk: ^2.7.0

相当于这个

environment:
  sdk: '>=2.7.0 <3.0.0'

此格式严格执行包发布

Package validation found the following error:
* ^ version constraints aren't allowed for SDK constraints since older versions of pub don't support them.
  Expand it manually instead:
  
  environment:
    sdk: ">=2.7.0 <3.0.0"
Sorry,your package is missing a requirement and can't be published yet.

Flutter 是否有任何理由使用 latter 代替 former 方法

可以说哪个更熟悉consistent

解决方法

一些定义:

  • ^2.7.0Caret syntax
  • >=2.7.0 <3.0.0Traditional syntax

并基于 documentation

因为在 Dart 1.8.3 中引入了插入符号语法,它需要一个 SDK 约束(使用传统语法)以确保旧版本的 pub 不会尝试处理它。例如:

environment:
  sdk: '>=1.8.3 <3.0.0'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。