Configuration Overview

Every project requires a melos.yaml project in the root. The below outlines all the configurable fields and their purpose.

name#

required

The name of this project, using for display purposes within IO environments and IDEs.

name: My Awesome Project

repository#

The URL of where the git repository, which contains this project, is centrally hosted.

Supported hosts:

repository: https://github.com/invertase/melos

packages#

required

A list of local packages Melos will use to execute commands against. The list can be of specific paths or a glob pattern expansion format.

packages:
  # e.g. all packages inside the /packages directory
  - packages/**
  # e.g. including the workspace root as a package
  - "*"

You can also reduce the scope of packages on a per-command basis via the --scope filter flag.

ignore#

required

A list of local packages Melos will ignore when executing commands in the workspace. The list can be of specific paths or a glob pattern expansion format.

ignore:
  # e.g. ignore example apps
  - "packages/**/*example"

You can also expand the scope of ignored packages on a per-command basis via the --scope filter flag.

scripts#

optional

Define custom scripts that can be executed in the workspace via the melos run command.

Learn more about defining scripts here.

command#

Configuration relating to specific Melos commands such as versioning.

command/version/message#

A template for the commit message, that is generated by melos version.

Templates must use mustache syntax and have the following variables available:

  • new_package_versions: A list of the versioned packages and their new versions.

The default is:

chore(release): publish packages

{new_package_versions}
command:
  version:
    message: |
      chore: cut package releases 🎉

      {new_package_versions}

command/version/branch#

If specified, prevents melos version from being used inside branches other than the one specified.

command:
  version:
    branch: main

command/version/linkToCommits#

Whether to add links to commits in the CHANGELOG.md, that is generated by melos version.

Enabling this option, requires repository to be specified.

command:
  version:
    linkToCommits: true

command/version/workspaceChangelog#

Whether to additionally build a CHANGELOG.md at the root of the workspace when running melos version.

command:
  version:
    workspaceChangelog: true