Как заставить Composer загрузить локальный пакет?

Допустим, у нас есть следующая структура каталогов, мы предполагаем, что my-package также существует в Packagist:

 - apps \_ my-app \_ composer.json - packages \_ my-package \_ composer.json 

Чтобы добавить my/package в зависимости от моего приложения, в документации указано, что мы можем использовать следующую конфигурацию:

 { "repositories": [ { "type": "path", "url": "../../packages/my-package" } ], "require": { "my/package": "*" } } 

Однако, когда я composer update , зависимость все еще загружается из Packagist. Итак, чтобы увидеть, я отключил Packagist.org:

 { "repositories": [ { "type": "path", "url": "../../packages/my-package", "packagist.org": false } ], "require": { "my/package": "*" } } 

Я очистил кеш с помощью composer clearcache , удалил my/package с composer remove my/package и снова установил его, чтобы composer require my/package --prefer-source (я не понял, является ли --prefer-source -prefer только для vcs) , Загруженный пакет по-прежнему не является локальным. Как заставить композитора использовать локальный?

 "require": { "my/package": "*" } 

В случае типов хранилищ VCS или path вам следует указать версию требуемого пакета. Поэтому вместо использования * как вы сейчас, измените его на чтение @dev :

 "require": { "my/package": "@dev" }