Как установить jQuery с Composer?

Я смог установить репозитории, у которых нет файла composer.json следующим образом:

{ "type": "package", "package": { "name": "yahoo/yui-compressor", "version": "2.0.4", "dist": { "url": "http://yui.zenfs.com/releases/yuicompressor/yuicompressor-2.4.7.zip", "type": "zip" } } }, 

Я взял «тип»: «zip» часть из документов, но я не мог найти много других типов. Например, мне нужно установить jQuery, но я не знаю, что вводить в тип («js» не работает).

  { "type": "package", "package": { "name": "jquery/jquery", "version": "1.7.2", "dist": { "url": "http://code.jquery.com/jquery-1.7.2.js", "type": "js" } } } 

Есть идеи?

EDIT : Я добавляю полное решение, чтобы помочь @CMCDragonkai:

  "require": { "vendorname/somefile": "1.2.3", }, "repositories": [ { "type": "package", "package": { "name": "vendorname/somefile", "version": "1.2.3", "dist": { "url": "http://example.com/somefile.txt", "type": "file" } } } ] 

Это просто недостающая функция. Вероятно, должен быть новый тип dist, который представляет собой только один файл открытого текста, который нужно загрузить и оставить как есть. Пожалуйста, напишите запрос на функцию в трееере github: https://github.com/composer/composer/issues/

РЕДАКТИРОВАТЬ :

Функция фактически существует, но не была документирована.

 "type": "file" 

На самом деле есть простой способ установить jQuery, просто введите:

 { "require": { "components/jquery": "1.9.*" } } 

Он использует Component Installer for Composer, и по умолчанию все компоненты компонента Component устанавливаются под components , но его можно настроить. ( см. документы ).

Как уже указывалось, первая часть решения определяет ваши собственные репозитории и параметр определения "type: ": "file" . Но следующая проблема заключается в том, что композитор должен поставить JQuery там, где вы хотите. В целом, композитор, похоже, ограничен загрузкой источника зависимости в vendor-dir (что раздражает, но, вероятно, связано с требованиями к автозагрузке). Общее исправление этого ограничения – написать плагин композитора, который его преодолеет. Кажется, это несколько плагинов, которые могут управлять этим. Самое легкое из самых легких решений, которое я нашел, это PHP Composer Asset Manager , который предназначен для управления не PHP / Composer «активы». Хотя, у него есть хотя бы одно ограничение в том, что изменения, которые делает плагин, не управляются / не распознаются композитором. Все еще можно использовать.

Вот полный composer.json для установки JQuery с помощью этого плагина:

 { "name": "foo/bar", "require": { "phpclasses/assets": "*", "jquery/jquery": "*" }, "repositories": [ { "type": "composer", "url": "http://www.phpclasses.org/" }, { "type": "package", "package": { "name": "jquery/jquery", "version": "1.7.2", "type": "jquery", "dist": { "url": "http://code.jquery.com/jquery-1.7.2.js", "type": "file" } } } ], "extra": { "assets": { "actions": [ { "type": "copy", "target": "webroot/js", "pattern": "\\.js$" } ], "packages": { "jquery/jquery": "*" } } } }