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).

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 bypasses all filtering flags if defined.

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.