Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Package Command Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Steps

  1. Verify Installation:

    wp package --version
    

    (No manual installation needed; included with WP-CLI.)

  2. List Installed Packages:

    wp package list
    

    Quickly check your current package ecosystem.

  3. 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).

Where to Look First

  • Command Reference: Focus on wp package list, wp package install, and wp package update for daily workflows.
  • Package Index: Browse available packages with wp package browse --format=json (for programmatic use).
  • Path Management: Use wp package path <package> to locate installed packages (e.g., for debugging or contributions).

Implementation Patterns

Core Workflows

  1. Dependency Management:

    • Installation:
      wp package install vendor/package:version-constraint
      
      Use version constraints (^1.0, ~2.0.0, @stable) for controlled updates.
    • Updates:
      wp package update --no-interaction  # Non-interactive CI/CD
      
      Automate updates in deployment scripts.
  2. Environment-Specific Packages:

    • Override the default ~/.wp-cli/packages/ directory:
      export WP_CLI_PACKAGES_DIR=/custom/path && wp package install vendor/package
      
    • Useful for isolated dev/staging/prod environments.
  3. Local Development:

    • Install from a local directory (symlinked):
      wp package install /path/to/local-package
      
    • Install from a Git repo (e.g., forks):
      wp package install git@github.com:user/repo.git
      
  4. Scripting and Automation:

    • Check Installed Packages:
      wp package list --format=json | jq -r '.[].name'
      
    • Conditional Logic:
      if wp package is-installed vendor/package; then
          wp package update vendor/package
      else
          wp package install vendor/package
      fi
      

Integration Tips

  • 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"
    

Gotchas and Tips

Pitfalls

  1. Certificate Validation:

    • Avoid --insecure in production. Use proper GitHub tokens instead:
      composer config -g github-oauth.github.com <TOKEN>
      
  2. Local Directory Installs:

    • Packages installed from local paths are not self-contained. Moving/deleting the directory breaks WP-CLI’s reference.
    • Workaround: Use .zip files or Git URLs for portability.
  3. Update Checks:

    • --skip-update-check speeds up wp package list but hides update availability.
    • Useful for CI/CD where updates are managed separately.
  4. Composer Conflicts:

    • WP-CLI packages may conflict with global Composer dependencies.
    • Debugging: Run composer why vendor/package to diagnose conflicts.
  5. GitHub Rate Limits:

    • Anonymous requests are rate-limited. Use a GitHub token for CI/CD:
      composer config -g github-oauth.github.com <TOKEN>
      

Debugging Tips

  • 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
    

Extension Points

  1. 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"
        }
      ]
    }
    
  2. 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"
      }
    }
    
  3. Testing Packages:

    • Use wp package path vendor/package to link to local dev branches.
    • Test with --skip-update-check to avoid network dependencies:
      wp package list --skip-update-check
      

Pro Tips

  • 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/
    
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor
spatie/laravel-javascript-views