Dart构建--我们在哪里,我们如何来到这里,我们要去哪里?
2023-12-01 03:34:06
当barback被编写出来的时候,它的目的是为了满足web开发中的一个小需求:比如sass编译,或者将sprites压缩成一张图片。这是一个非常灵活的系统,而且事实证明它对更密集的构建步骤非常有用,比如Angular编译器。不过灵活性是有代价的。如果任何文件可以在构建的任何步骤中改变,那么让构建可缓存变得非常困难。
这就是Incremental Dart的用武之地。它允许构建步骤只更新实际发生更改的文件。而且它还可以根据文件系统中的时间戳检查文件是否更改,这样它就不必遍历所有文件来查找更改的文件。这使得构建速度比barback快很多。
Incremental Dart还引入了另一个好处:它允许构建步骤并行运行。这是因为构建步骤不再相互依赖,这意味着它们可以同时运行。这进一步提高了构建速度。
随着Dart 2的发布,Incremental Dart已被弃用,取而代之的是新的构建系统build_runner。build_runner比Incremental Dart更强大,因为它支持更多的功能,比如热重载。它还更容易使用,因为它提供了更简单的API。
build_runner目前仍处于开发阶段,但它已经非常稳定,并且用于构建许多大型Dart项目。随着build_runner的成熟,它可能会成为Dart构建的标准工具。
Dart构建系统已经取得了很大的进步。从barback到Incremental Dart,再到build_runner,我们已经看到构建速度和灵活性不断提高。随着build_runner的继续发展,我们很可能会看到Dart构建系统变得更加强大和易用。
在Dart生态中,构建系统一直是一个不断发展的领域。从barback到Incremental Dart,再到最新的build_runner,我们已经看到构建速度和灵活性不断提高。
barback是一个灵活的系统,但灵活性是有代价的。它很难让构建可缓存,而且它不支持并行构建。
Incremental Dart解决了barback的这些问题。它允许构建步骤只更新实际发生更改的文件,并且它还允许构建步骤并行运行。这使得构建速度比barback快很多。
build_runner是Dart 2中引入了新的构建系统。它比Incremental Dart更强大,因为它支持更多的功能,比如热重载。它还更容易使用,因为它提供了更简单的API。
build_runner目前仍处于开发阶段,但它已经非常稳定,并且用于构建许多大型Dart项目。随着build_runner的成熟,它可能会成为Dart构建的标准工具。
Dart构建系统已经取得了很大的进步。我们很可能会看到Dart构建系统变得更加强大和易用。