<div class="featurebox">
</div>
中dependencies
和dev_dependencies
的区别是什么?似乎当我运行pubspec.yaml
时,pub get
未下载。
答案 0 :(得分:3)
dev_dependencies
仅在您pub get
/ pub upgrade
直接运行包pubspec.yaml
时才会使用。始终忽略dev_dependencies
个依赖包(dependencies
或dev_dependencies
)。因此,dev_dependencies
仅与您的包的开发(测试,工具,示例......)相关的任务相关,但与其用作依赖关系时不相关。
另请参阅https://www.dartlang.org/tools/pub/pubspec.html
答案 1 :(得分:1)
如果您的程序包(例如A)依赖于另一个程序包(例如B)(还具有dev-dependencies
),则您的程序包(A)只会忽略该程序包(B)使用的dev-dependencies
。
但是,您的软件包(A)将取决于B软件包的软件包(在dependency
下指定)。
答案 2 :(得分:0)
Pub 支持两种类型的依赖项:dependencies 和 dev dependencies。
Dev dependencies 与常规依赖项的不同之处在于,您所依赖的软件包的开发依赖项会被忽略。 示例如下:
假设 transmogrify 包在其测试中使用测试包,并且仅在其测试中使用。如果有人只是想使用 transmogrify——导入它的库——它实际上不需要测试。在这种情况下,它将测试指定为开发依赖项。
它的 pubspec 将包含以下内容:
dev_dependencies:
test: '>=0.5.0 <0.12.0'
<块引用>
Pub 获取您的软件包所依赖的每个软件包,以及所有内容 这些包依赖,传递。它还可以获取您的包裹 dev 依赖,但它忽略任何依赖的 dev 依赖 包。 Pub 仅获取您的包的开发依赖项。所以当你的 package 依赖 transmogrify 它会得到 transmogrify 但不测试。
决定常规依赖项还是开发依赖项的规则很简单:如果依赖项是从 lib 或 bin 目录中的某些内容导入的,则它需要是常规依赖项。如果它只是从测试、示例等导入,它可以而且应该是一个开发依赖项。
使用开发依赖关系使依赖关系图更小。这使得 pub 运行得更快,并且更容易找到一组满足所有约束的包版本。
在这里,您可以了解更多关于dependencies