diff --git a/packages/nx/src/tasks-runner/tasks-schedule.ts b/packages/nx/src/tasks-runner/tasks-schedule.ts index 7a75258b6164a9..53c6166e68aada 100644 --- a/packages/nx/src/tasks-runner/tasks-schedule.ts +++ b/packages/nx/src/tasks-runner/tasks-schedule.ts @@ -99,7 +99,14 @@ export class TasksSchedule { [taskId] ); this.options.lifeCycle.scheduleTask(task); - this.scheduledTasks.push(taskId); + this.scheduledTasks = this.scheduledTasks + .concat(taskId) + // NOTE: sort task by most dependent on first + .sort( + (taskId1, taskId2) => + this.reverseTaskDeps[taskId2].length - + this.reverseTaskDeps[taskId1].length + ); } private scheduleBatches() {