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

Metadata Minifier Laravel Package

composer/metadata-minifier

Utility library for Composer 2.x repository metadata. Minifies package version arrays into diffs and expands minified metadata back to the original structure, reducing JSON size and improving transfer efficiency. Includes simple static minify/expand APIs.

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.
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
ecotone/kafka
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata