Допустим, у нас есть следующая структура каталогов, мы предполагаем, что 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" }