moxio / captainhook-yarn-deduplicate
Captain Hook Plugin to check for unnecessary duplication in yarn.lock using yarn-deduplicate
Installs: 20 461
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 11
Forks: 0
Open Issues: 0
Requires
- php: ^7.2 || ^8.0
- captainhook/captainhook: ^4.4 || ^5.0
- sebastianfeldmann/cli: ^3.0
- sebastianfeldmann/git: ^2.2 || ^3.0
Requires (Dev)
- phpunit/phpunit: ^8.5
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-11-22 22:24:41 UTC
README
moxio/captainhook-yarn-deduplicate
This project is a plugin for CaptainHook to check your yarn.lock
file
for duplicate packages using yarn-deduplicate. The commit is blocked
when one or more duplicate packages are found. You can then fix these manually by running yarn-deduplicate
.
Installation
Install as a development dependency using composer:
$ composer require --dev moxio/captainhook-yarn-deduplicate
Usage
Add yarn-deduplicate validation as a pre-commit
to your captainhook.json
configuration file:
{ "pre-commit": { "enabled": true, "actions": [ { "action": "\\Moxio\\CaptainHook\\YarnDeduplicate\\YarnDuplicationCheckAction" } ] } }
The check is only run when committing changes to yarn.lock
. It will thus not detect pre-existing duplications as
long as there are no changes to the Yarn lockfile.
The action expects yarn-deduplicate to be installed as a local NPM
package (i.e. available at node_modules/.bin/yarn-deduplicate
).
Conditional usage
If you want to perform duplication checks only when yarn-deduplicate is installed (i.e. available at
node_modules/.bin/yarn-deduplicate
), you can add a corresponding condition to the action:
{ "pre-commit": { "enabled": true, "actions": [ { "action": "\\Moxio\\CaptainHook\\YarnDeduplicate\\YarnDuplicationCheckAction", "conditions": [ { "exec": "\\Moxio\\CaptainHook\\YarnDeduplicate\\Condition\\YarnDeduplicateInstalled" } ] } ] } }
This may be useful in scenarios where you have a shared CaptainHook configuration file that is included both in projects that use yarn-deduplicate and projects that don't. If yarn-deduplicate is installed, the action is run. In projects without yarn-deduplicate, the validation is skipped.
Versioning
This project adheres to Semantic Versioning.
Contributing
Contributions to this project are welcome. Please make sure that your code follows the PSR-12 extended coding style.
License
This project is released under the MIT license.