2016-11-26 3 views
1

Я создал модуль и его в своем частном репо. Я создал файл composer.json для него:Пользовательский модуль SilverStripe устанавливается в папку поставщика

{ 
    "name": "company/sync", 
    "description": "sync", 
    "type": "silverstripe-module", 
    "authors": [{ 
     "name": "XXXX", 
     "email": "XXXX" 
    }], 
    "require": { 
     "silverstripe/framework": "~3.2", 
     "composer/installers": "~1.0" 
    }, 
    "extra": { 
     "installer-name": "sync" 
    }, 
    "minimum-stability": "dev" 
} 

И у меня есть мои главные проекты composer.json:

{ 
    "name": "silverstripe/installer", 
    "description": "The SilverStripe Framework Installer", 
    "repositories": [ 
     { 
      "type": "package", 
      "package": { 
       "name": "company/sync", 
       "version": "master", 
       "source": { 
        "url": "[email protected]:xxx/sync.git", 
        "type": "git", 
        "reference": "master" 
       } 
      } 
     } 
    ], 
    "require": { 
     "php": ">=5.3.3", 
     "silverstripe/cms": "3.3.1", 
     "silverstripe/framework": "3.3.1", 
     "silverstripe/reports": "3.3.1", 
     "silverstripe/siteconfig": "3.3.1", 
     "silverstripe-themes/simple": "3.1.*", 
     "company/sync": "*" 
    }, 
    "require-dev": { 
     "phpunit/PHPUnit": "~3.7" 
    }, 
    "extra": { 
     "branch-alias": { 
      "3.x-dev": "3.3.x-dev" 
     }, 
     "installer-paths": { 
      "sync": ["company/sync"] 
     } 
    }, 
    "config": { 
     "process-timeout": 600 
    }, 
    "prefer-stable": true, 
    "minimum-stability": "dev" 
} 

Из того, что я читал, это пакет помечается как silverstripe-module это должен положить его в корень установки. Я также попытался установить его с помощью параметра extra, однако он по-прежнему размещается у поставщика/компании/синхронизации. Что я делаю не так?

ответ

2

Я думаю, что ваша проблема заключается в вашей пользовательской записи «репозитории». Определив запись «package», вы сообщаете композитору свойства пакета, и он не будет искать composer.json вашего репозитория.

Таким образом, либо вы полностью определяете запись «package», добавляя также «тип» и другие поля, либо просто используете запись «vcs» (которая будет использовать ваш composer.json из вашего репозитория). Например.

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "[email protected]:xxx/sync.git" 
    } 
] 

Короче: Использование «VCS» для хранилищ, которые имеют свои собственные composer.json и использовать только «пакет», если опираться на источники, которые не имеют каких-либо метаданных композитора.

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