在带有 Pub 的 Dart 中,我啥时候应该对依赖项使用“任何”版本约束?

Posted

技术标签:

【中文标题】在带有 Pub 的 Dart 中,我啥时候应该对依赖项使用“任何”版本约束?【英文标题】:In Dart with Pub, when should I use the "any" version constraint for a dependency?在带有 Pub 的 Dart 中,我什么时候应该对依赖项使用“任何”版本约束? 【发布时间】:2013-04-22 11:13:49 【问题描述】:

在制作包时,我经常对是否应该使用any 约束感到困惑。

我知道:

库包,I should specify clear version constraints,以便我的库的用户知道我的传递依赖项的版本,

应用程序包,I should use any and check in my pubspec.lock lockfile,以便其他人可以运行我的应用程序,

但有一个灰色区域:

旨在扩展的应用程序,例如代码实验室、教程、模板、示例等。

也具有可重用库的应用程序;即,具有 lib 目录的包用于通用功能,放在单独的包中没有意义,但还有一个 web 目录用于成熟的应用程序。


问题:什么时候应该使用any 版本约束,什么时候应该完全指定Pub 包的版本约束?

【问题讨论】:

【参考方案1】:

旨在扩展的应用程序,例如代码实验室、教程、模板、示例等。

由于这些通常会被复制粘贴作为普通应用程序包的基础,因此我将使用any 约束并签入锁定文件以树立一个很好的例子。

具有可重用库的应用程序;也就是说,具有用于通用功能的 lib 目录的包,放在单独的包中没有意义,但也有用于成熟应用程序的 web 目录。

所有应用程序都应将其代码放在lib 目录中。 web 目录应该只包含入口点。所以这只是一个标准的应用程序包,它应该使用any 约束并签入一个锁文件。

【讨论】:

以上是关于在带有 Pub 的 Dart 中,我啥时候应该对依赖项使用“任何”版本约束?的主要内容,如果未能解决你的问题,请参考以下文章

我啥时候应该使用导航控制器?

Node.js - 我啥时候应该做异步的事情,啥时候做同步

我啥时候需要将异步函数的返回类型声明为未来对象?

在 Dart 和 Pub 中,我应该将 pubspec.lock 添加到我的 .gitignore 吗?

在 Dart 和 Pub 中,我应该将 pubspec.lock 添加到我的 .gitignore 吗?

我啥时候应该在 C 中使用 malloc,啥时候不应该?