Constraints prevent packages from depending on each other in ways that don’t make sense but are allowed by your package manager. They help you maintain a dependency graph that’s easy to reason about no matter how many packages are in your project. You might want to use constraints to:Documentation Index
Fetch the complete documentation index at: https://docs.commonality.co/llms.txt
Use this file to discover all available pages before exploring further.
- Ensure no package can ever depend on an
application - Ensure
datapackages can’t depend onuipackages - Ensure
configpackages can only depend on otherconfigpackages.
Configuring constraints
Constraints are defined as a constraint object in your project configuration file and can be used toallow and disallow packages matching a selector.
Here’s an example of a configuration that enforces the constraints above:
.commonality/config.json
Validating constraints
You can view the status of your constraints by running the constraint command.Precedence
A constraint object can contain bothallow and disallow constraints.
When both are present, disallow constraints will be evaluated first.