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
.