如何使用Composer要求项目的特定文件?

时间:2013-03-30 20:57:36

标签: php json requirejs composer-php

我有一个composer.json这样的文件:

{
    "require": {
        "components/jquery": "*",
        "ajbdev/requirejs": "dev-master"
    }
}

但我想得到ajbdev/requirejs/require.js文件。我怎么能用Composer做到这一点?

编辑:

正如@ dev-null-dweller提议的那样,以下对我有用,但它是最好的解决方案吗?

{
    "require": {
        "components/jquery": "*"
    },
    "scripts": {
        "post-autoload-dump": "rm -rf vendor/ajbdev && mkdir vendor/ajbdev && mkdir vendor/ajbdev/requirejs && wget -q --no-check-certificate -O vendor/ajbdev/requirejs/require.js https://raw.github.com/ajbdev/requirejs/master/require.js"
    }
}

2 个答案:

答案 0 :(得分:2)

您可以使用scripting hook并通过提供完整的URL来获取此文件,即:

{
    "require": {
        "components/jquery": "*"
    },
    "scripts": {
        "post-autoload-dump": "wget -q -P vendor/file/output/dir/ --no-check-certificate https://raw.github.com/ajbdev/requirejs/master/require.js"
    }
}

答案 1 :(得分:1)

修改

  • 将包裹放在github上,
  • 删除所有文件,但删除项目中包含的文件以及包composer.json。
  • 将您的fork添加为自定义存储库:

    {
        "repositories": [
             {
                 "type":"vcs",
                 "url":"git@github.com:Shalkydri/requirejs.git"
             }
        ],
        "require": {
             "components/jquery": "*",
             "ajbdev/requirejs": "dev-master"
        }
    } 
    

修改

要仅获取引用的“require.js”文件,您可以在github上找到文件及其原始版本之前,从packagist(https://packagist.org/packages/ajbdev/requirejs)找到相应的github包:

https://github.com/ajbdev/requirejs/blob/master/require.js https://raw.github.com/ajbdev/requirejs/master/require.js

原始答案

您可以在提供任何版本约束(例如“dev-master”

)之前执行以下命令
php composer.phar require ajbdev/requirejs