2017-01-21 8 views
2

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

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

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

{ 
    "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 только для VCS). Загруженный пакет по-прежнему не является локальным. Как заставить композитора использовать локальный?

ответ

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^