在制作包时,我经常对是否应该使用任何约束感到困惑.
我知道这个:
>库包,I should specify clear version constraints,以便我的库用户知道我的传递依赖的版本,
>应用程序包,I should use any
and check in my pubspec.lock
lockfile以便其他人可以运行我的应用程序,
但是有一个灰色区域:
>要扩展的应用程序,例如codelabs,教程,模板,示例等.
>具有可重用库的应用程序;也就是说,包含具有通用功能的lib目录的包,这些包对于放入单独的包没有意义,但也是用于完整应用程序的Web目录.
问题:我究竟应该使用任何版本约束,何时应该完全指定Pub包的版本约束?
applications that are meant to be extended,such as codelabs,tutorials,templates,examples,and others.
由于这些通常将作为普通应用程序包的基础进行复制粘贴,因此我将使用any约束并检入锁定文件以设置一个很好的示例.
applications that also have re-usable libraries; that is,packages that have a
lib
directory for common functionality that doesn’t make sense to put in a separate package,but also aweb
directory for a full-fledged application.
所有应用程序都应将其代码放在lib目录中. Web目录应该只包含入口点.所以这只是一个标准的应用程序包,它应该使用任何约束并检入一个锁文件.