来自私人仓库的composer create-project

Luk*_*den 21 laravel composer-php laravel-4

我在Bit Bucket上有一个私人项目.我有一个SSH密钥设置.有没有办法可以php composer create-project vendor/name path像在Packagist上一样使用命令?

rio*_*ode 21

那么有不同的方法可以实现这一点,即使用一个用于代替packagist.org的composer存储库,这是一种更好的集中管理私有作曲程序包的方法.另一种方法是使用composer.json,它在您的环境中,每个环境中包含您的私有存储库.

第一

Composer允许您使用私有存储库来创建项目.

像这样......

composer create-project vendor/name path --repository-url=http://repo.yourcomposerrepo.com
Run Code Online (Sandbox Code Playgroud)

由于您不会向packagist提交私人包裹.该URL只需要一个packages.json文件至少,你可以使用SATIS或您自己packagist如果你想要一个更加动态的解决packages.json.

使用composer.json的方法适用于已创建的项目,这些项目将使用自定义存储库用于私有包,而不是用于从私有存储库创建新项目.如果你想沿着类似的路线走,请使用下一个方法.

第二

为您的环境全局配置您的私有存储库到您的config.json.那就像通常..

composer create-project vendor/name path
Run Code Online (Sandbox Code Playgroud)

  • 在 composer 中,术语存储库指的是 satis、packagist 或其他,它们基本上只是生成一个 package.json 文件。在 package.json 中配置项目源,您可以通过调用它来创建项目,就像我在上面的例子中所做的那样。 (2认同)

Lau*_*nce 16

是的,Composer允许您将私有项目作为"存储库"添加到composer.json文件中.因此,您可以将私有项目包含到另一个项目中.

它为GitHub和Bitbucket(以及SVN和Mercurial)提供支持.

您需要修改composer.json文件,使其如下所示:

{
    "repositories": [ {
        "type": "package",
        "package": {
            "name": "TheShiftExchange/test",
            "version": "1.0.0",
            "source": {
                "url": "https://github.com/TheShiftExchange/test.git",
                "type": "git",
                "reference": "master"
              }
         }
    }],
    "require": {
        "laravel/framework": "4.0.*",
        "TheShiftExchange/test": "1.0.*"
    },
}
Run Code Online (Sandbox Code Playgroud)


小智 5

我以前的方式:

composer create-project vendor/name path --repository="{\"url\": \"https://bitbucket.org/user/project.git\", \"type\": \"vcs\"}" --stability=dev --remove-vcs
Run Code Online (Sandbox Code Playgroud)

参考:https : //getcomposer.org/doc/03-cli.md#create-project