作曲者可以用來管理JavaScript的依賴關係爲好。默認情況下,composer只使用一個名爲Packagist的存儲庫,它只是一個PHP庫的存儲庫。但是,如建議here,您可以添加您自己的JavaScript(或任何其他)庫的存儲庫。
這裏是我的composer.json,增加了一個自定義的淘汰賽-JS庫:
{
"require": {
"php": ">=5.3.2",
"symfony/symfony": ">=2.0.10,<2.1.0-dev",
"doctrine/orm": ">=2.1.0,<2.2.0-dev",
"twig/extensions": "*",
"symfony/assetic-bundle": "2.0.*",
"sensio/generator-bundle": "2.0.*",
"sensio/framework-extra-bundle": "2.0.*",
"sensio/distribution-bundle": "2.0.*",
"jms/security-extra-bundle": "1.0.*",
"knockout/knockout-js": "2.1.0"
},
"autoload": {
"psr-0": {
"Acme": "src/"
}
},
"repositories": [
{
"type": "package",
"package": {
"name": "knockout/knockout-js",
"version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/SteveSanderson/knockout.git",
"reference": "v2.1.0"
}
}
},
{
"type": "package",
"package": {
"name": "knockout/knockout-js",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/SteveSanderson/knockout.git",
"reference": "v2.0.0"
}
}
}
]
}
庫由包(這是源庫版本的組合)。在這裏我有2個包(2.1.0,2.0.0),它們已經包含了knockout.js的預建源代碼,所以你不需要編譯任何東西。
現在,有些時候您可能想要編譯和使用最新的代碼。爲了實現這個例程的自動化,我想,可以使用git post-checkout鉤子。 添加一個新包,指的是最新的代碼:
{
"type": "package",
"package": {
"name": "knockout/knockout-js",
"version": "master",
"source": {
"type": "git",
"url": "https://github.com/SteveSanderson/knockout.git",
"reference": "master"
}
}
}
參考這個包中需要部分:
"knockout/knockout-js": "master"
而且具有構建指令結賬後掛機。對於knockout.js很簡單:
// vendor/knockout/knockout-js/.git/hooks/post-checkout
#!/bin/sh
echo "Building knockout.js";
`cd build && ./build-linux`;
這與我的問題 – Dziamid
沒有關係麼?你問過如何在你的項目中包含供應商的JavaScript。這就是我的做法......資產處理咖啡和較少文件的編譯。 – MDrollette
問題是關於安裝/更新JavaScript供應商庫。 – Dziamid