Commands
Commands can be run from the root of a project using Melos.
bootstrap (bs)
Bootstraps the project by installing and linking project dependencies.
melos bootstrap
melos bs
Packages defined in the melos.yaml
packages
field will be locally linked whilst other dependencies
will be automatically installed via flutter pub get
.
clean
Cleans up the current project workspace.
melos clean
Deletes any temporary pub related files and build artifacts (such as iOS Pods, Android builds etc).
This command is useful for when you feel something within your project is being cached and want to start fresh. Once
executed, you'll need to rerun the bootstrap
command again for Melos to work.
exec
Execute an arbitrary command in each package.
melos exec
# e.g. melos exec -- pub global run tuneup check
concurrency (-c)
Defines the max concurrency value of how many packages will execute the command in at any one time. Defaults to 5
.
# Set a 1 concurrency
melos exec -c 1 -- pub global run tuneup check
--fail-fast
Whether exec should fail fast and not execute the script in further packages if the script fails in a individual package.
Defaults to false
.
# Fail fast
melos exec --fail-fast -- pub global run tuneup check
--all (-a)
Show private packages that are hidden by default. Defaults to false
.
melos list --all
melos list -a
--parsable (-p)
Show parsable output instead of columnified view. Defaults to false
.
melos list --parsable
melos list -p
publish
Publish any unpublished packages or package versions in your repository to pub.dev. dry-run
is enabled by default.
melos publish
--dry-run
Flags whether or not to publish the packages as a dry run (validate but do not publish). Defaults to true
.
# Publish packages with dry run
melos publish --dry-run
# Publish packages without dry run
melos publish --no-dry-run
Use --no-dry-run
to disable.
init
Initializes Melos in a project.
melos init
A melos.yaml
file and empty packages/
directory will be generated.
version
Automatically version and generate changelogs for all packages. Supports all Melos filtering flags.
melos version
To learn more, visit the Automated Releases documentation.
--prerelease (-p)
Version any packages with changes as a prerelease. Cannot be combined with graduate flag. Defaults to false
.
melos version --prerelease
melos version -p
--graduate (-g)
Graduate current prerelease versioned packages to stable versions, e.g. "0.10.0-dev.1" becomes "0.10.0". Cannot be combined with prerelease flag. Defaults to false
.
melos version --graduate
melos version -g
--changelog (-c)
Update CHANGELOG.md files (based on conventional commit messages). Defaults to true
.
melos version --changelog
melos version -c
Use --no-changelog
to disable.
--git-tag-version (-t)
Update CHANGELOG.md files (based on conventional commit messages). Defaults to true
.
melos version --git-tag-version
melos version -t
Use --no-git-tag-version
to disable.
--all (-a)
Version private packages that are skipped by default.
melos version --all
melos version -a
--no-private
Exclude private packages (publish_to: none
). They are included by default.
melos bootstrap --no-private
--published
Filter packages where the current local package version exists on pub.dev.
melos bootstrap --no-private
Use --no-published
to filter packages that have not had their current version published yet.
--scope
Include only packages with names matching the given glob. This option can be repeated.
# Run `flutter build ios` on all packages with "example" in the package name
melos exec --scope="*example*" -- flutter build ios
--ignore
Exclude packages with names matching the given glob. This option can be repeated.
# Run `flutter build ios` on all packages but ignore those whose packages names contain "internal"
melos exec --ignore="*internal*" -- flutter build ios
--since
Only include packages that have been changed since the specified ref
, e.g. a commit sha or git tag.
# Run `flutter build ios` on all packages but ignore those whose packages names contain "internal"
melos version --since=<commit hash>
--dir-exists
Include only packages where a specific directory exists inside the package.
# Only bootstrap packages with an example directory
melos bootstrap --dir-exists="example"
--file-exists
Include only packages where a specific file exists in the package.
# Only bootstrap packages with an README.md file
melos bootstrap --file-exists="README.md"