Important: This documentation covers Yarn 2. For the 1.x doc, check
yarn addyarn binyarn cache cleanyarn config getyarn config setyarn configyarn constraints queryyarn constraints sourceyarn constraintsyarn dlxyarn inityarn installyarn linkyarn nodeyarn npm infoyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn patch-commityarn patchyarn plugin importyarn plugin listyarn plugin runtimeyarn rebuildyarn removeyarn runyarn set resolutionyarn set version from sourcesyarn set versionyarn stageyarn unplugyarn upyarn upgrade-interactiveyarn version applyyarn version checkyarn versionyarn whyyarn workspaceyarn workspaces foreachyarn workspaces list

yarn run

Run a script defined in the package.json.


$> yarn run [--inspect] [--inspect-brk] <scriptName> ...


Run the tests from the local workspace :

yarn run test

Same thing, but without the "run" keyword :

yarn test

Inspect Webpack while running :

yarn run --inspect-brk webpack


This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:

  • If the scripts field from your local package.json contains a matching script name, its definition will get executed.

  • Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed (the --inspect and --inspect-brk options will then be forwarded to the underlying Node process).

  • Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed.

Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax).