wp-cli/package-command
Adds WP-CLI’s package management commands. List installed packages, browse available ones, and install or uninstall community-maintained WP-CLI extensions. Uses Composer under the hood to manage dependencies and autoloading.
Verify Installation:
wp package --version
(No manual installation needed; included with WP-CLI.)
List Installed Packages:
wp package list
Quickly check your current package ecosystem.
Install a Package (First Use Case):
wp package install wp-cli/server-command
Install a core package (e.g., wp-cli/server-command for local development servers).
wp package list, wp package install, and wp package update for daily workflows.wp package browse --format=json (for programmatic use).wp package path <package> to locate installed packages (e.g., for debugging or contributions).Dependency Management:
wp package install vendor/package:version-constraint
Use version constraints (^1.0, ~2.0.0, @stable) for controlled updates.wp package update --no-interaction # Non-interactive CI/CD
Automate updates in deployment scripts.Environment-Specific Packages:
~/.wp-cli/packages/ directory:
export WP_CLI_PACKAGES_DIR=/custom/path && wp package install vendor/package
Local Development:
wp package install /path/to/local-package
wp package install git@github.com:user/repo.git
Scripting and Automation:
wp package list --format=json | jq -r '.[].name'
if wp package is-installed vendor/package; then
wp package update vendor/package
else
wp package install vendor/package
fi
Composer Synergy:
WP-CLI packages are Composer-based. Leverage composer.json in ~/.wp-cli/packages/ for dependency management.
Example: Add a post-install-cmd to auto-install WP-CLI packages:
{
"scripts": {
"post-install-cmd": "wp package install vendor/package"
}
}
CI/CD Pipelines:
Use --no-interaction to suppress prompts:
wp package update --no-interaction --skip-update-check
Cache the ~/.wp-cli/packages/ directory between runs for faster builds.
Custom Commands: After installing a package, its commands are auto-loaded. Verify with:
wp help | grep "custom-command"
Certificate Validation:
--insecure in production. Use proper GitHub tokens instead:
composer config -g github-oauth.github.com <TOKEN>
Local Directory Installs:
.zip files or Git URLs for portability.Update Checks:
--skip-update-check speeds up wp package list but hides update availability.Composer Conflicts:
composer why vendor/package to diagnose conflicts.GitHub Rate Limits:
composer config -g github-oauth.github.com <TOKEN>
Inspect Composer.json:
cat ~/.wp-cli/packages/composer.json
Verify package dependencies and constraints.
Clear Cache: Corrupted caches can cause issues. Reset with:
rm -rf ~/.wp-cli/cache/packages/
wp package update
Verbose Output: Enable Composer debugging:
wp package install vendor/package -- --verbose
Custom Package Index:
Extend the package index by modifying ~/.wp-cli/packages/composer.json to include private repositories:
{
"repositories": [
{
"type": "vcs",
"url": "git@github.com:private/repo.git"
}
]
}
Pre/Post-Install Hooks:
Use Composer scripts in ~/.wp-cli/packages/composer.json:
{
"scripts": {
"post-package-install": "wp cache flush",
"post-package-uninstall": "wp cache flush"
}
}
Testing Packages:
wp package path vendor/package to link to local dev branches.--skip-update-check to avoid network dependencies:
wp package list --skip-update-check
Alias for Common Packages:
Add aliases to ~/.wp-cli/config.yml:
packages:
- wp-cli/server-command
- vendor/dev-package
Then run wp package update to auto-install.
Version Pinning:
Pin versions in composer.json to avoid surprises:
"require": {
"vendor/package": "1.2.3"
}
Backup Packages:
Before updating, backup ~/.wp-cli/packages/:
tar -czf wp-cli-packages-backup.tar.gz ~/.wp-cli/packages/
How can I help you explore Laravel packages today?