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.
Package currently used to resolve the dependency. May be null if the dependency couldn't be resolved. This can happen in those cases:
The dependency is a peer dependency; workspaces don't have ancestors to satisfy their peer dependencies, so they're always unresolved. This is why we recommend to list a dev dependency for each non-optional peer dependency you list, so that Yarn can fallback to it.
The dependency is a prod dependency, and there's a dev dependency of the same name (in which case there will be a separate dependency entry for the dev dependency, which will have the resolution).
The dependency is a peer dependency; workspaces don't have ancestors to satisfy their peer dependencies, so they're always unresolved. This is why we recommend to list a dev dependency for each non-optional peer dependency you list, so that Yarn can fallback to it.
The dependency is a prod dependency, and there's a dev dependency of the same name (in which case there will be a separate dependency entry for the dev dependency, which will have the resolution).
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.
Only return dependencies listed in the following set.
Only return dependencies from the given workspace.
A map of the dependencies the package is allowed to access. There's no distinction between prod dependencies and dev dependencies.
Package name.
A map of the optional peer dependencies declared in the package.
A map of the required peer dependencies declared in the package.
Package version.
If the package is a workspace, return the corresponding workspace
Only return packages with the given name.
Only return packages with the given reference.
Only return packages from the given workspace.
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.
The resolved information 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 a unique workspace according to the provided filter.
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.