Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@sp-packages/depkit

SP-Packages437MIT2.4.1TypeScript support: included

A lightweight CLI tool to efficiently manage Composer & NPM dependencies in a project.

composer, npm, dependencies, devDependencies, audit, outdated, depcheck

readme

DepKit

_A lightweight CLI tool to efficiently manage Composer & NPM dependencies in a project._

npm version npm downloads license build status semantic-release TypeScript Prettier codecov PRs welcome Sponsor

🔍 Why DepKit?

Managing dependencies across both Composer (PHP) and NPM (JavaScript) can be tedious. depkit simplifies the process by providing a single command to:

  • 📦 Install dependencies for both Composer and NPM
  • 🔄 Audit and check for outdated dependencies
  • 🚀 Ensure best practices by running necessary package checks
  • 📜 Customizable config file (depkit.json)
  • ⚡ Works seamlessly with WordPress, PHP, and Node.js projects
  • 🛠️ Ideal for automation in CI/CD, Lando, and local development workflows

✨ Features

  • 📌 Installs production or development dependencies
  • 🛠️ Runs security audits to identify vulnerabilities
  • 🔄 Checks for outdated packages
  • ⚡ Lightweight and fast

📝 How DepKit Works

Before executing any commands, depkit checks for the existence of composer.json and package.json in your project root:

  1. If composer.json is found, it runs Composer commands. Otherwise, it skips Composer execution.
  2. If package.json is found, it runs NPM commands. Otherwise, it skips NPM execution.
  3. If neither file is found, depkit exits with an error, as there are no dependencies to manage.

This ensures that depkit only executes relevant commands based on your project structure.

📦 Installation

Global Installation (For system-wide use)

npm install -g @sp-packages/depkit

This allows you to use depkit globally in your terminal.

Local Installation (For project-specific use)

npm install @sp-packages/depkit --save-dev

Then, run it via:

npx depkit

🚀 Usage

Basic Usage

Run dependency installation and checks for both Composer and NPM:

depkit

Options:

$ depkit -h
Usage: depkit [options]

A lightweight CLI tool to efficiently manage Composer & NPM dependencies in a project.

Options:
-V, --version output the version number
--skip-composer Skip processing Composer dependencies
--skip-npm Skip processing NPM dependencies
--production Install only production dependencies (exclude dev dependencies)
-c, --config <config> Path to the configuration file (default: depkit.json)
-q, --quiet Disable output
-v, --verbose Enable verbose logging
-h, --help display help for command

Skipping Composer or NPM Processing

  • Skip Composer execution:

    depkit --skip-composer
  • Skip NPM execution:

    depkit --skip-npm
  • Skip both (not recommended):

    depkit --skip-composer --skip-npm

Production Mode

To install only production dependencies (skip devDependencies):

depkit --production

This runs:

  • composer install --no-dev
  • npm install --omit=dev

⚙️ Configuration (depkit.json)

Running the depkit command will allow you to automatically create the depkit.json file. Alternatively, you can manually create a depkit.json or .depkit.json in your project root or a custom configuration file and pass it using the -c or --config parameter:

{
  "TOOLS": {
    "COMPOSER_VERSION": {
      "title": "Checking Composer version",
      "command": "info",
      "type": "composer",
      "behavior": "error",
      "priority": 1,
      "args": ["--version"]
    },
    "COMPOSER_AUDIT": {
      "title": "Auditing PHP Dependencies",
      "command": "audit",
      "type": "composer",
      "behavior": "error",
      "priority": 2
    },
    "NPM_VERSION": {
      "title": "Checking NPM version",
      "prefix": "npm",
      "command": "info",
      "args": ["--version"],
      "type": "npm",
      "behavior": "error",
      "priority": 3
    },
    "DEPCHECK": {
      "title": "Depcheck NPM Packages",
      "prefix": "npx",
      "command": "depcheck",
      "type": "npm",
      "behavior": "warn",
      "requires": "depcheck",
      "priority": 4
    },
    "NPM_OUTDATED": {
      "title": "Outdated NPM Packages",
      "command": "outdated",
      "type": "npm",
      "behavior": "warn",
      "priority": 5
    }
  }
}

If no --config option is provided, depkit will look for depkit.json or .depkit.json in the project root by default.

📜 Commands Overview

By default, depkit executes predefined commands for Composer and NPM, ensuring dependencies are properly managed.

Composer Commands

Command Description
composer -V Checks the installed Composer version
composer install Installs Composer dependencies
composer install --no-dev Installs Composer dependencies without dev dependencies (when --production is used)
composer audit Checks for known security vulnerabilities in dependencies
composer outdated Lists outdated Composer dependencies

NPM Commands

Command Description
npm -v Checks the installed NPM version
npm install Installs NPM dependencies
npm install --omit=dev Installs only production dependencies (when --production is used)
npm audit --omit=dev Runs an NPM security audit
npm outdated Lists outdated NPM dependencies

📊 Gain Insights Into Your Dependencies

By running these commands, depkit provides a clear picture of your project's dependencies:

  • 📌 Composer & NPM Version Checks – Ensure the correct versions are installed.
  • 🔍 Security Audits – Identify vulnerabilities in your dependencies.
  • 📅 Outdated Package Reports – Know when dependencies need updates.
  • 🛠 Seamless Installation – Manage dependencies across multiple environments.

This helps maintain a secure, up-to-date, and stable project setup! 🚀

🎯 Example Outputs

✔ [SUCCESS] No security vulnerability advisories found.
✔ [SUCCESS] Checking Composer version: Passed
✔ [SUCCESS] Installing PHP Dependencies: Passed
✔ [SUCCESS] Auditing PHP Dependencies: Passed
✔ [SUCCESS] Outdated PHP Dependencies: Passed
✔ [SUCCESS] Checking NPM version: Passed
✔ [SUCCESS] Installing NPM Packages: Passed
⚠ [WARNING] Depcheck NPM Packages: Issues found
✔ [SUCCESS] Outdated NPM Packages: Passed
✔ [SUCCESS] Auditing NPM Packages: Passed

💡 Use Cases

  • WordPress & PHP Projects – Handle Composer and NPM dependencies in one go
  • Node.js Projects – Keep dependencies up to date with ease
  • CI/CD Automation – Ensure dependencies are installed before builds
  • Lando & Local Dev Environments – Automate dependency setup

1️⃣ Automating Lando Post-Start Hook

If you're using Lando, you can automatically run depkit after lando start:

services:
  appserver:
    run_as_root:
      - depkit

2️⃣ CI/CD Integration

Run depkit in GitHub Actions, GitLab CI/CD, or other automation scripts:

jobs:
  setup:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v3

      - name: Install Dependencies
        run: npm ci

      - name: Install DepKit
        run: npm install -g @sp-packages/depkit

      - name: Run DepKit
        run: depkit

🤝 Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

📜 License

This project is licensed under the MIT License. See the LICENSE file for details.

changelog

2.4.1 (2025-05-22)

Bug Fixes

  • dependencies: update dependencies (ba02adb)

2.4.0 (2025-05-22)

Features

  • dependabot: change update schedule to weekly for npm and actions (16a87a5)

Bug Fixes

  • dependencies: update dependencies (7f09f90)
  • workflows: update action versions and ensure issue permissions (b9085a8)

2.3.0 (2025-04-01)

Features

  • config: improve config file resolution and generation prompt (99ec11d)
  • funding: add custom PayPal funding link to funding configuration (fb85e15)
  • labeler: enhance labeler configuration for various file types (9549ca2)
  • linting: add markdownlint configuration and update cspell settings (5e9bbf2)
  • workflows: update workflow configurations and permissions (79736db)

Bug Fixes

  • spinner: clear spinner before error messages and on completion (7e2ab55)

2.2.0 (2025-03-28)

Features

  • cli, core, utils: enhance logging with spinner and log (97f4b0e)
  • makefile: add Makefile with help, start, dep, and lint targets (43f19ff)

Bug Fixes

  • deps: update dependencies (c36cd3b)

2.1.0 (2025-03-16)

Features

  • dependencies: add depkit configuration and update package versions (f58c2cb)
  • executor: enhance tool availability check with optional type (17b4f95)
  • lint: add lintrc configuration and integrate markdownlint (14120e9)

Bug Fixes

  • depkit: update action parameters to include _files argument (71e2381)
  • executor: remove redundant log for empty command output (003af81)
  • readme: streamline badge links for improved readability (042dd5a)

2.0.0 (2025-03-15)

⚠ BREAKING CHANGES

  • config: update printer package and enhance configuration handling

Features

  • codecov: integrate Codecov for improved coverage reporting (12c4f23)
  • config: update printer package and enhance configuration handling (f778421)
  • tests: add Vitest configuration and initial test cases (e10d063)
  • tsconfig: update TypeScript config and enhance build script (6ae8bc4)