How to ignore directories with Composer?

composer-php

Solution

This is not possible in Composer. However, there are some ways to do it:

When you run the update or install command with `--prefer-dist`, Composer tries to download the archive on github. You can remove the test directory from the archives by putting this in a `.gitattributes` file in the root directory of your project:

Tests/ export-ignore

Composer will only use the tags on github. Just temporary remove the tests directory when creating a tag will also do the trick.

Problem

I'd like to release a PHP library and submit it on Packagist to have it installable via Composer. My library has the following structure: ``` lib/ tests/ composer.json README.md ``` Basically, whenever I include this library in a project's `composer.json`, I'd like everything to be copied with the exception of the `tests` directory, which is cumbersome and is only needed when developing the library itself. It's just a waste of space otherwise (especially when packaging the project for production). Is it possible to exclude this directory from the library's `composer.json`?

Original source