次のような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を支援するために、完全なsolutionを追加しています。
"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 issue trackerで機能リクエストを提出してください: https://github.com/composer/composer/issues/
編集:
機能 実際に存在する ですが、文書化されていません。
"type": "file"
実際には、jQueryをインストールする簡単な方法があります。入力するだけです:
{
"require": {
"components/jquery": "1.9.*"
}
}
Composerのコンポーネントインストーラー を使用し、デフォルトでコンポーネントのすべてのアセットはcomponents
の下にインストールされますが、カスタマイズできます。 ( ドキュメントを参照 )。
既に概説したように、ソリューションの第1部は、独自のリポジトリと"type: ": "file"
リポジトリ定義オプション。しかし、その後の問題はcomposerを取得してJQueryを目的の場所に配置することです。現状では、composerはvendor-dir
(これは迷惑ですが、おそらくオートロードの要件に関連しています)。この制限に対する一般的な修正は、それを克服するcomposerプラグインを書くことです。これを管理できるいくつかのプラグインのようです。私が見つけた最も簡単な最も軽いソリューションは PHP Composer Asset Manager 、これは非PHP/Composer "アセット"の管理専用です。ただし、プラグインによる変更が管理/検出されないという制限が少なくとも1つあります作曲家による。
完全な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": "*"
}
}
}
}
Composer)の代わりにnpm
、yarn
またはWebPack
を使用してください。