为什么在 Pubspec.lock flutter sdk 中的版本是:“0.0.0”?如何安全地锁定颤振版本?

Ale*_*ean 5 yaml dart flutter

我正在帮助调试一个测试游戏应用程序。我对包裹进行了深入研究。我仍然感到困惑并且无法找到有关堆栈溢出和官方文档的正确文档的一件事是显示颤振版本的代码行:“0.0.0”,而显然不是。

pubspec.lock 中,所有软件包都正确更新,如下所示:

   dependency: "direct main"
   description:
     name: audioplayers
     url: "https://pub.dartlang.org"
   source: hosted
   version: "0.14.2"
Run Code Online (Sandbox Code Playgroud)

但不是为了颤振

    dependency: "direct main"
    description: flutter
    source: sdk
    version: "0.0.0" 
...
flutter_test:
    dependency: "direct dev"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_web_plugins:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.0"
Run Code Online (Sandbox Code Playgroud)

然后在最底部有

sdks:
  dart: ">=2.6.0 <3.0.0"
  flutter: ">=1.12.13+hotfix.4 <2.0.0"
Run Code Online (Sandbox Code Playgroud)

同样在pubspec.yaml 中

Dart 以这种方式受到约束

  sdk: ">=2.3.0 <3.0.0"
Run Code Online (Sandbox Code Playgroud)

而颤振不是

dependencies:
  flutter:
    sdk: flutter
Run Code Online (Sandbox Code Playgroud)

使困惑

我们将我们的代码与 github 上的不同源代码进行了比较,发现了类似的行为。例如:https : //github.com/japalekhin/langaw/blob/master/pubspec.lock

https://github.com/fireship-io/183-flutter-draggable-game/blob/master/pubspec.lock

  • 要修复一个版本的 flutter - 我们可以编辑底部的 pubspec.lock 行吗?这会造成不稳定吗?
  • 任何文档,关于引擎盖下发生的事情的解释?为什么在代码中有一个版本:“0.0.0”