Cakephp Composer在错误的目录中安装jQuery组件

Cakephp Composer在错误的目录中安装jQuery组件,cakephp,composer-php,Cakephp,Composer Php,我正在尝试通过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-devel

我正在尝试通过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的root-
app/components/jquery
中创建和安装一些文件。我想将所有组件都放在供应商一中,如何解决这个问题?

组件/jquery包使用,它可以从您的
composer.json
中读取指定的
component dir
设置,您希望将下载的组件放在此处-例如,在
web/assets
文件夹中:

{
    "require": {
        "components/jquery": "*"
    },
    "config": {
        "component-dir": "web/assets"
    }
}
要了解更多信息,请查看文档

然后,您可以将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根目录添加一个符号链接到该文件。

完美,谢谢!我选择了第一个解决方案,因此
component/jquery
实际上是
ivaynberg/select2
的一个依赖项,因此只需更改
component dir
就更容易了。希望我们能够将这些内容传输到/dev/null。使用assetic,我更喜欢从实际的供应商文件夹中提取特定的零件。不过谢谢你,现在我至少可以把它从根上拔出来了。