pub dependencies 和 dev_dependencies 有什么区别?

What's the difference between pub dependencies and dev_dependencies?

dependenciesdev_dependenciespubspec.yaml 中有什么区别?似乎当我 运行 pub get dev_dependencies 没有下载。

dev_dependencies 是不可用于生成的应用程序中的代码的依赖项,但仅可用于测试、示例、工具,或将可执行工具(如代码生成)添加到您的项目中。

当您发布到 pub.dev.

时,项目中任何依赖项(dependenciesdev_dependencies)的

dev_dependencies 总是被忽略

另见 https://dart.dev/tools/pub/pubspec

依赖有两种,一种是regular,一种是dev。

依赖关系:

Regular dependencies are listed under dependencies:—these are packages that anyone using your package will also need.

dev_dependencies:

Dependencies that are only needed in the development phase of the package itself are listed under dev_dependencies.


如果你的包(比如A)依赖于另一个包(比如B)(有dev-dependencies),那么你的包A会忽略[=包 B.

的 12=]

但是,您的包 A 取决于包 Bdependencies 列出的包。

Pub supports two flavors of dependencies : dependencies and dev dependencies.

Dev dependencies 与常规依赖项的不同之处在于,您所依赖的包的开发依赖项将被忽略。 举个例子:

假设 transmogrify 包在其测试中且仅在其测试中使用测试包。如果有人只是想使用 transmogrify——导入它的库——它实际上不需要测试。在这种情况下,它将测试指定为开发依赖项
它的 pubspec 会是这样的:

dev_dependencies:
  test: '>=0.5.0 <0.12.0'

Pub gets every package that your package depends on, and everything those packages depend on, transitively. It also gets your package’s dev dependencies, but it ignores the dev dependencies of any dependent packages. Pub only gets your package’s dev dependencies. So when your package depends on transmogrify it will get transmogrify but not test.

决定常规依赖项还是开发依赖项的规则很简单:如果依赖项是从 lib 或 bin 目录中的某些内容导入的,则它必须是常规依赖项。如果它只是从测试、示例等导入,它可以而且应该是开发依赖。

使用开发依赖可以让依赖图变小。这使得 pub 运行 更快,并且更容易找到一组满足所有约束的包版本。

在这里,您可以了解更多 dependencies