Environment Variables

These variables are available as environment variables in scripts run by melos exec. They can also automatically replaced/injected on melos exec commands e.g. melos exec --file-exists="./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart" --scope="*example*" -- echo hello

Defined by Melos

MELOS_ROOT_PATH

The path to the mono-repo root

MELOS_PACKAGE_NAME

The name of the package that's currently executing a script (when using melos exec)

MELOS_PACKAGE_VERSION

The version of the package that's currently executing a script (when using melos exec)

MELOS_PACKAGE_PATH

The path of the package that's currently executing a script (when using melos exec).

MELOS_PARENT_PACKAGE_NAME

The name of the parent package of the current package that's currently executing a script (when using melos exec).

MELOS_PARENT_PACKAGE_VERSION

The version of the parent package of the current package that's currently executing a script (when using melos exec).

MELOS_PARENT_PACKAGE_PATH

The path of the parent package of the current package that's currently executing a script (when using melos exec).

MELOS_PUBLISH_DRY_RUN

Whether the current publish is a dry run or not. This is true when running melos publish --dry-run and false otherwise.

What is a 'parent package'

If a package exists in a directory that is also a child of another package, then its parent is the 'parent package'. For example; the package firebase_auth has a example directory that is also a package, when running a melos exec script in the example package then the parent package would be firebase_auth.

Note, this 'parent package' functionality only currently works when the 'child package' name ends with example

User Defined

MELOS_PACKAGES

Define a comma delimited list of package names that Melos should focus on. This will act as the scope global package filter, and it will override the scope for all the filtering options defined in the packageFilters section.

MELOS_SDK_PATH

The path to the Dart/Flutter SDK to use. This environment variable has precedence over the sdkPath option in melos.yaml, but is overridden by the command line option --sdk-path.