Shrink Dependencies
The sfp org dependency shrink command optimizes your project's dependency declarations by removing redundant transitive dependencies from your sfdx-project.json. This results in a cleaner project configuration with only the necessary direct dependencies declared for each package.
Usage
# Create a shrunk version of the project configuration
sfp org dependency shrink -v mydevhub
# Overwrite the existing sfdx-project.json with shrunk dependencies
sfp org dependency shrink -v mydevhub --overwriteFlags
| Flag | Description | Required |
|---|---|---|
-o, --overwrite | Overwrites the existing sfdx-project.json file with the shrunk configuration | No |
-v, --targetdevhubusername | Username or alias of the target Dev Hub org | Yes |
--loglevel | Logging level (trace, debug, info, warn, error, fatal) | No |
Behavior
- Without
--overwrite, creates a new file at./project-config/sfdx-project.min.json - With
--overwrite, backs up existingsfdx-project.jsonto./project-config/sfdx-project.json.bakand overwrites the original - Removes transitive dependencies that are already covered by direct dependencies
- Preserves external dependency mappings
External Dependencies Configuration
External dependencies can be configured in your sfdx-project.json file using the plugins.sfp section. This is particularly useful for managed packages or packages from other Dev Hubs that your project depends on.
Configuration Format
{
"packageDirectories": [...],
"plugins": {
"sfp": {
"externalDependencyMap": {
"package-name": [
{
"package": "04tXXXXXXXXXXXXXXX",
"versionNumber": "1.0.0.LATEST"
}
]
}
}
}
}Example
{
"plugins": {
"sfp": {
"externalDependencyMap": {
"trigger-framework": [
{
"package": "04tXXXXXXXXXXXXXXX",
"versionNumber": "1.0.3.LATEST"
}
]
}
}
}
}Notes
- External dependencies must be defined with their 04t IDs (subscriber package version IDs)
- The
versionNumbercan use.LATESTto automatically use the latest version that matches the major.minor.patch pattern - External dependencies are preserved during both shrink and expand operations
- These dependencies are automatically included when calculating transitive dependencies