@sp-packages/depkit v2.4.1
DepKit
š 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:
- If
composer.json
is found, it runs Composer commands. Otherwise, it skips Composer execution. - If
package.json
is found, it runs NPM commands. Otherwise, it skips NPM execution. - 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.