diff --git a/src/Cli/BuildTask.php b/src/Cli/BuildTask.php
index <HASH>..<HASH> 100644
--- a/src/Cli/BuildTask.php
+++ b/src/Cli/BuildTask.php
@@ -93,7 +93,7 @@ class BuildTask extends BaseTask
     protected function _buildTarget($factory, $build)
     {
         $writer = $factory->writer();
-        $compiler = $factory->compiler();
+        $compiler = $factory->cachedCompiler();
 
         $name = $writer->buildFileName($build);
         if ($writer->isFresh($build) && !$this->cli->arguments->defined('force')) {
diff --git a/src/Factory.php b/src/Factory.php
index <HASH>..<HASH> 100644
--- a/src/Factory.php
+++ b/src/Factory.php
@@ -164,7 +164,7 @@ class Factory
 
         $required = $this->config->requires($name);
         if ($required) {
-            $compiler = $this->compiler();
+            $compiler = $this->cachedCompiler();
             foreach ($required as $dependency) {
                 $files[] = new Target($this->target($dependency), $compiler);
             }
Use cached compiler when building intermediate targets.

Using the cached compiler will allow builds to share/re-use the same
intermediate build output. This should make the middleware more
performant.