Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

yarn run

Runs a defined package script.

You may define scripts in your package.json file.

{
  "name": "my-package",
  "scripts": {
    "build": "babel src -d lib",
    "test": "jest"
  }
}
yarn run [script] [<args>]

If you have defined a scripts object in your package, this command will run the specified [script]. For example:

yarn run test

Running this command will execute the script named "test" in your package.json.

You can pass additional arguments to your script by passing them after the script name.

yarn run test -o --watch

Running this command will execute jest -o --watch.

[script] can also be any locally installed executable that is inside node_modules/.bin/.

It’s also possible to leave out the run in this command, each script can be executed with its name:

yarn test -o --watch

Running this command will do the same as yarn run test -o --watch. Note that built-in cli commands will have preference over your scripts, so you shouldn’t always rely on this shortcut in other scripts.

By default, a specified [script] can be prefixed with pre or post to execute before another.

{
  "name": "my-package",
  "scripts": {
    "build": "babel src -d lib",
    "prebuild": "jest"
  }
}

Running yarn run build will execute yarn run prebuild prior to yarn build.

yarn run env

Running this command will list environment variables available to the scripts at runtime.

If you want to override this command, you can do so by defining your own "env" script in package.json.

yarn run

If you do not specify a script to the yarn run command, the run command will list all of the scripts available to run for a package.