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

时间:2014-09-05 12:16:45

标签: 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-develop",
        "friendsofcake/crud": "3.*",
        "components/jquery": "2.*"
    },
    "config": {
        "vendor-dir": "Vendor/"
    }
}

它会在app/Vendor/components/jquery中安装一些文件,但它也会在APP的根目录app/components/jquery中创建并安装一些文件。我想在供应商中拥有一个,我该如何解决这个问题?

1 个答案:

答案 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根目录添加符号链接。