The constraints engine is declarative, and you don't need to compare values yourself except in some specific situations. For instance, if you wish to ensure that all workspaces define a specific license, you would write something like this:
// Yes: declarative
for (const w of Yarn.workspaces()) {
w.set(`license`, `MIT`);
}
// No: imperative
for (const w of Yarn.workspaces()) {
if (w.manifest.license !== `MIT`) {
w.set(`license`, `MIT`);
}
}
Note that the presence of this field will disable any evaluation of
the constraints.pro
file, although no warning is currently emitted.
Dependency name.
Dependency range. Note that it doesn't have to be a semver value - it can also be a git repository, and http url, etc.
Name of the field under which this dependency can be found.
Reference to the owning workspace.
Report an error (useful when you want to forbid a specific package
from being added to the dependencies). If --fix
is set, Yarn will
silently remove the dependency from the package.json instead of
reporting an error.
Report a non-recoverable custom error.
Error message
Report an error unless the dependency has the expected range. If
--fix
is set, Yarn will silently update the package.json instead of
reporting an error.
New range for the dependency.
Only return dependencies with the given name.
Relative path from the project root to the workspace. The root
workspace always has a cwd
equal to .
.
Workspace name.
Raw manifest object for the workspace.
Report a non-recoverable custom error.
Error message
Report an error unless the workspace lists the specified property
with the specified value. If --fix
is set, Yarn will silently update
the package.json instead of reporting an error.
Property path
Expected value
Report an error if the workspace lists the specified property. If
--fix
is set, Yarn will silently remove the field from the
package.json instead of reporting an error.
Property path
Only return the workspace with the given relative path.
Note: This doesn't currently support glob patterns. Help welcome!
Note: This doesn't currently support glob patterns. Help welcome!
Only return the workspace with the given package name.
Note: This doesn't currently support glob patterns. Help welcome!
Note: This doesn't currently support glob patterns. Help welcome!
Select all dependencies according to the provided filter.
Select a unique workspace according to the provided filter.
Select all matching workspaces according to the provided filter.
Called each time the constraints engine runs. You can then use the methods from the provided context to assert values on any of your workspaces' definitions.
The constraints engine is declarative, and you don't need to compare values yourself except in some specific situations. For instance, if you wish to ensure that all workspaces define a specific license, you would write something like this:
// Yes: declarative
for (const w of Yarn.workspaces()) {
w.set(`license`, `MIT`);
}
// No: imperative
for (const w of Yarn.workspaces()) {
if (w.manifest.license !== `MIT`) {
w.set(`license`, `MIT`);
}
}
Note that the presence of this field will disable any evaluation of
the constraints.pro
file, although no warning is currently emitted.
The constraints engine is declarative, and you don't need to compare values yourself except in some specific situations. For instance, if you wish to ensure that all workspaces define a specific license, you would write something like this:
// Yes: declarative
for (const w of Yarn.workspaces()) {
w.set(`license`, `MIT`);
}
// No: imperative
for (const w of Yarn.workspaces()) {
if (w.manifest.license !== `MIT`) {
w.set(`license`, `MIT`);
}
}
Note that the presence of this field will disable any evaluation of
the constraints.pro
file, although no warning is currently emitted.
Generated using TypeDoc
Called each time the constraints engine runs. You can then use the methods from the provided context to assert values on any of your workspaces' definitions.
The constraints engine is declarative, and you don't need to compare values yourself except in some specific situations. For instance, if you wish to ensure that all workspaces define a specific license, you would write something like this:
// Yes: declarative for (const w of Yarn.workspaces()) { w.set(`license`, `MIT`); } // No: imperative for (const w of Yarn.workspaces()) { if (w.manifest.license !== `MIT`) { w.set(`license`, `MIT`); } }
Note that the presence of this field will disable any evaluation of the
constraints.pro
file, although no warning is currently emitted.