如何安装与Composer的jQuery?

我已经能够安装没有这样的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" } } }, 

我从文档中选取了“types”:“zip”部分,但找不到其他types。 例如,我需要安装jQuery,但是我不知道要input什么(“js”不起作用)。

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

有任何想法吗?

编辑 :我添加完整的解决scheme,以帮助@ 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" } } } ] 

这只是一个缺失的function。 应该可能有一种新的disttypes,它只是一个单一的明文文件被下载并保持原样。 请在github问题跟踪器上提交function请求: https : //github.com/composer/composer/issues/

编辑:

该function实际上存在,但没有logging。

 "type": "file" 

其实有一个更简单的方法来安装jQuery,只需键入:

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

它使用Component Installer for Composer ,默认情况下来自Component的所有资源都安装在components下,但可以自定义。 ( 见文档 )。

如前所述,解决scheme的第一部分是定义您自己的存储库和"type: ": "file"存储库定义选项。 但后续的问题是让composer php把JQuery放在你想要的地方。 就目前而言,composer php似乎仅限于在vendor-dir (这很烦人,但可能与自动加载要求有关)下载依赖关系源。 这个限制的一般解决办法是写一个克服它的composer php插件。 似乎是一些可以pipe理这个的插件。 我find的最简单最轻量级的解决scheme是PHP Composer资产pipe理器 ,它专门用于pipe理非PHP / Composer“资产”。 尽pipe如此,插件所做的更改至less有一个限制,不会由作曲者pipe理/检测。 仍然可用。

下面是一个完整的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": "*" } } } }