Weave 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
Metadata Minifier

Metadata Minifier Laravel Package

composer/metadata-minifier

A small PHP utility that minifies and expands Composer package version metadata using version diffs, powering Composer 2.x's repository metadata protocol. Requires PHP 5.3.2+, MIT licensed.

View on GitHub
Deep Wiki
Context7

Small utility library that handles metadata minification and expansion.

Frequently asked questions about Metadata Minifier
How does composer/metadata-minifier improve Laravel project performance?
The package reduces the size of composer.lock by minifying version metadata into diffs, which speeds up file transfers and CI/CD pipeline execution. Laravel projects benefit from faster dependency resolution and smaller repository bloat, especially in monorepos or large-scale deployments.
Can I use this package with Laravel 11.x without compatibility issues?
Yes, the package is Composer-agnostic and works with Laravel 11.x as long as you’re using Composer 2.x or later. Test with `composer-metadata-minifier --dry-run` first to ensure no critical metadata (e.g., `extra.laravel`) is stripped accidentally.
Will minifying composer.lock break Laravel’s dependency resolution?
No, the minification is reversible via `MetadataMinifier::expand()`, and the package preserves all critical fields (e.g., version constraints, source hashes). However, custom metadata in `extra` or `config` may need the `--preserve` flag to avoid issues with Laravel tooling.
How do I integrate this into a Laravel CI/CD pipeline (e.g., GitHub Actions)?
Add the minifier to your `composer.json` scripts under `post-update-cmd` or `post-install-cmd`, then configure your CI to enforce minified locks. Example: `composer require --dev composer/metadata-minifier` followed by `vendor/bin/composer-metadata-minifier` in your workflow.
Does this package support PHP 8.1+ features like named arguments?
The package itself doesn’t require PHP 8.1 features, but Laravel 10.x/11.x projects using it will need PHP 8.0+. Named arguments or other PHP 8.1+ features won’t interfere, as the minifier operates on metadata, not code.
What if my Laravel project relies on custom composer.lock fields (e.g., extra.laravel)?
Use the `--preserve` flag to exclude custom fields from minification. Run `composer-metadata-minifier --preserve extra.laravel` to safeguard Laravel-specific metadata while still optimizing other version data.
How do I revert to an unminified composer.lock if CI fails?
Run `composer-metadata-minifier --expand` to revert the lock file. For safety, back up your original `composer.lock` before minifying or use Git to restore the pre-minified version if needed.
Are there alternatives to this package for Laravel projects?
No direct alternatives exist for Composer 2.x metadata minification, but you could manually optimize `composer.lock` with tools like `jq` or custom scripts. However, this package is the official solution and ensures compatibility with Composer’s repository protocol.
Will this package slow down `composer install` or `composer update`?
No, minification happens post-installation and doesn’t affect dependency resolution speed. The package is designed for post-processing, so performance impact is negligible during `composer install` or `update`.
How do I test this package in a Laravel project before production?
Install it in a dev environment with `composer require --dev composer/metadata-minifier`, then run `vendor/bin/composer-metadata-minifier --dry-run` to preview changes. Compare the minified `composer.lock` with the original and verify Laravel tooling (e.g., `laravel/env`) still works.
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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core
nodisrupt/laravel-agent
sierratecnologia/media-manager