Publish Command
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 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.
--git-tag-version (-t)
Add any missing git tags for release. Tags are only created if --no-dry-run is also set.
melos publish --no-dry-run --git-tag-version
Note that tags are automatically created as part of melos version
(unless
--no-git-tag-version
is specified when running the version command) so this is
usually not required on melos publish
unless you're doing a manual version and
publish of packages.
Hooks
Melos supports various command lifecycle hooks
that can be defined in your melos.yaml
.
For example, if you need to run something such as a build runner automatically
before melos publish
is run and then remove the generated files after
publishing is done, you can add pre
and post
hook scripts to your
melos.yaml
file:
# melos.yaml
# ...
command:
publish:
hooks:
pre: dart pub run build_runner build
post: dart pub run build_runner clean
# ...
The pre-hook will run before melos publish
and the post-hook will run after
melos publish
is done. It only runs once, even if multiple packages are
published and it also runs when you are doing a dry-run
publish.
You can detect whether it is a dry-run by checking the MELOS_PUBLISH_DRY_RUN
environment variable.