vx show
vx show prints the workspace’s resolved configs: what a run would
see right now. Configs load through the same path a run uses: from
.vx/projects.lock.json, plugin config and project stages applied,
so a package a plugin gives tasks to (turbo() or nx() from
@vzn/vx-migrate, a temporary start toward native config) shows them.
vx show evaluates no config: an edit shows after vx lock, and with
no lock it refuses as a run does (no lock: run \vx lock``).
vx show # list every projectvx show <project> # one project's resolved config (`//`: the root project's)vx show <pkg>#<task> # a single task (`//#<task>`: the root project's)vx show <task> # that task in every project declaring itvx show [<task>] --filter <p> # only the projects `vx run --filter <p>` selectsvx show <task> --affected # only the projects whose <task> `vx run <task> --affected` runsvx show --affected # the run's candidates: the changed projects and their dependentsvx show ... --format json # machine-readable (default: pretty)Examples
Section titled “Examples”$ vx show project dir tasks tags app packages/app 3 tasks scope:web bare packages/bare no vx config$ vx show app#build
─ app#build ────────────────────────────────────────────────── dir packages/app description compile the app command tsc -b dependsOn ^build inputs.files src/** inputs.env NODE_ENV outputs.files dist/**Options
Section titled “Options”| Option | Meaning |
|---|---|
--filter <p> |
only the projects vx run --filter <p> selects |
--affected[=<ref>] |
only what vx run --affected would select, below |
--format pretty|json |
json for scripts |
Understanding the output
Section titled “Understanding the output”The project list. No target: a table, one row per project — name, root-relative dir,
task count, and no vx config for config-less packages; one whose
tasks all come from plugins reads N tasks from plugins (no vx config), and one a configured project depends on reads 1 task, default build (no vx config): a run loads it for that dependant’s
^build (X-48). A tags column appears when any project has tags. With --format json
it’s an array of { name, dir, tags: string[], tasks: string[] }.
A project or task. A report naming the project opens it: its dir, its tags, and
config none for a package with no config file. Then
vx show <project> prints a block per task, headed by its
project#task, with every field the run reads: description, command ((group) for group tasks), dependsOn,
timeout, retries, env.passThrough / env.define / env.secret,
remote, sandbox, persistent, interactive (yes / no), and the
cache block
(inputs.files / .workspaceFiles / .env / .tasks / .runtime /
.workspaceRuntime, outputs.files / .workspaceFiles). Fields the
task does not set are not printed; a value that spans lines (a
multi-line command) continues under its first line. --format json emits { name, dir, config } with the config exactly as resolved. vx show <pkg>#<task>
narrows to one task ({ name, dir, task, config } in JSON). A bare
name that is no project is a task: vx show build prints the block
from every project declaring build (an array of the one-task shape
in JSON). The default build is declared by none: it counts in the
list and vx show <project>, but vx show build, like
vx run build --all, does not name it (X-145).
--filter and --affected
Section titled “--filter and --affected”--filter and --affected[=<ref>] narrow the list, or a task’s
projects, as vx run selects: turbo ls --affected is
vx show --affected, and nx show projects --affected --with-target t
is vx show t --affected. Beside a task, --affected lists the
projects whose task the run keeps: a change reaches another project
only along a task edge, so a dependent whose test has no ^test is
not listed (X-147). A task’s list the selection leaves empty says so on
stderr (no affected project's test runs); --format json prints [].
With no task there is no edge to follow, and the
list is the run’s candidates, --filter "...[<base>]"’s: the changed
projects and their package dependents. Beside one project or
<pkg>#<task> they are refused.
Nx’s spellings name these: vx show projects (when no project or task
has that name) and vx show project <name> say vx show and
vx show <name>.
Unknown names
Section titled “Unknown names”Unknown project / task names exit 1 with the same near-miss hint
every verb gives (two edits, or a partial name); a bare name that is
neither reads unknown project or task: "buidl" — did you mean build?,
and a pkg#task hints whole specs (unknown task: "app#bui" — did you mean app#build?). With nothing near, it lists what exists instead: unknown project: "zzz"; projects: app, lib, ; its tasks: app#build, app#test,
or ; projects and tasks: … (M-57).
An empty target (vx show '') is refused: omit it to list every project.
In a workspace with no project, the list is empty and vx show says so
on stderr (no projects) and names vx init.
Exit codes
Section titled “Exit codes”| Code | When |
|---|---|
0 |
success |
1 |
parse error or unknown target |