Core Concepts

--scope is deprecated in 1.2.x. Please use --filter instead.

Scoped Tasks

Scoping task execution can speed up the process especially if there are distinct clusters of workspaces that are not related to each other within your repository. Turborepo has a scope option that allows the task running to proceed up to the workspaces found that matches the scope argument. It's useful to think of scope as an "entry point" into your monorepo's workspace/task graph. This is a string matcher based on the name of the workspaces (not the workspace path).

It is important to note that dependents and dependencies refer to the workspace and task.

Scoped tasks with all its dependents

By default, it is helpful to be able to run tasks on all affected workspaces within a scope. Workspaces that changed will affect downstream consumers. In this case, pass along the scope to build all the dependencies as well.

You can use wildcard character: *. This is particularly helpful when workspaces are named by group or by scope.

turbo run build --scope=*build-tools*

Scoped tasks with no dependents & their dependencies

Sometimes we want to run the tasks needed to satisfy the build script of all the workspaces that has the build-tools string in their names. Think of this as running tasks up and including the workspace matched in the scope. Add a --no-deps flag to run up to a workspace task.

turbo run build --scope=*build-tools* --no-deps --include-dependencies

Turborepo's Scoped Tasks API design and docs were/are inspired Microsoft's Lage project (opens in a new tab) --scope flag which was inspired by Lerna's (opens in a new tab).

We are working toward a new, more expressive task filtering/scoping syntax. Read the RFC here. (opens in a new tab)

Last updated on 2022-10-28T19:53:01.000Z