我试图通过CakePHP应用程序中的Composer安装jQuery组件,composer.json:
{
"name": "affiliate",
"require": {
"cakephp/cakephp": "2.5.*",
"cakephp/debug_kit": "2.2.*@dev",
"cakedc/utils": "dev-develop",
"cakedc/search": "dev-develop",
"friendsofcake/crud": "3.*",
"components/jquery": "2.*"
},
"config": {
"vendor-dir": "Vendor/"
}
}
它会在app/Vendor/components/jquery
中安装一些文件,但它也会在APP的根目录app/components/jquery
中创建并安装一些文件。我想在供应商中拥有一个,我该如何解决这个问题?
答案 0 :(得分:16)
components/jquery
包使用component-installer,该here可以从composer.json
指定component-dir
设置中读取您想要放置下载组件的设置 - 例如在web/assets
文件夹中:
{
"require": {
"components/jquery": "*"
},
"config": {
"component-dir": "web/assets"
}
}
要了解详情,请查看文档{{3}}。
然后,您可以将web / assets中下载的组件文件添加到.gitignore中,这样就不会添加由程序包管理器加载的文件。
如果您不喜欢这种方法,那么另一个选择是您可以将自己的包存储库添加到composer.json
,如下所示:
{
"repositories": [
{
"type": "package",
"package": {
"name": "jquery/jquery",
"version": "2.1.1",
"dist": {
"url": "http://code.jquery.com/jquery-2.1.1.js",
"type": "file"
}
}
}
],
"require": {
"jquery/jquery": "2.1.1"
}
}
使用这种方法,composer会将JS文件下载到vendor/jquery/jquery/jquery-2.1.1.js
- 然后您可以从www根目录添加符号链接。