繁体   English   中英

Composer创建项目。 指向特定分支

[英]Composer create-project. Point at specific branch

我创建了一个Laravel仓库的分支,对它进行了一些更改,并将作曲家文件中的名称重命名为votemike / laravel。 我现在想基于这个repo创建一个新项目,所以我打电话给:

composer create-project --prefer-dist votemike/laravel --repository='{"type":"vcs","url":"https://github.com/votemike/laravel"}' testing

然而,我的终端然后突然说出Reading composer.json of votemike/laravel (v5.2.23)它逐渐递减。 结果项目似乎是一个正常的Laravel项目,没有我的更改。 然后我尝试了:

composer create-project --prefer-dist votemike/laravel:master --repository='{"type":"vcs","url":"https://github.com/votemike/laravel"}' testing

但这似乎也不起作用。

任何人都可以帮我解决我需要运行的命令吗? 我假设我的电脑不应该读取每个版本的作曲家文件。 命令可以简化吗?

谢谢,

迈克尔

更新:

由于这是一个自定义的Composer项目,我想知道你是否可以使用我撰写博客文章的自定义创建项目脚本: Composer创建项目脚本

您只需将其放在项目的根目录下,编辑它以匹配并运行它 - 它将为您创建一个项目。

我用它来测试我自己的Composer项目,我认为它可以让你简单地创建你的自定义Laravel项目,而不必与Composer争夺版本。

https://gist.github.com/jacmoe/e9e8ed5fd45affb893a8

编辑:

你需要做的是编辑:

BRANCH_NAME=${1:-master}
DEST_DIR=${2:-~/Desktop/newapp}
PACKAGE_NAME=vendor/package

您可以按BRANCH_NAME离开第一个( BRANCH_NAME ),但请更改DEST_DIRPACKAGE_NAME

PACKAGE_NAME 必须与您修改的Laravel源目录的composer.json的包名称匹配。

通知

你可以从你的Laravel分支的本地克隆副本中使用它 - 它在本地工作 - 它不会尝试在Github或Packagist上找到任何东西。 它使用您所在的目录(工作目录)并将使用它来创建项目 - 您可以选择脚本创建它的位置。


原始答案:

脱离我的头顶:

composer create-project --prefer-dist --stability=dev votemike/laravel

或者,如果这不起作用,请尝试以下方法:

composer create-project --prefer-dist --stability=dev votemike/laravel:dev-master

或者,使用@dev - 或dev-branch代替dev-master ...

但是,第一个命令应该这样做。

您的克隆项目是否有任何标签? 如果没有,那就解释了为什么Composer正在采取行动。 告诉它使用dev-master将解决这个问题,因为Composer默认只会拉动版本(major.minor.revision方案后面的标签)。

编辑:

在我的一个项目中,我正在使用包的主分支,在我的composer.json使用以下条目:

"jacmoe/yii2-tale-jade": "dev-master",

如何将你的包装到你的composer.json中取决于你 - 手动,或者要求使用正确的版本(如dev-master

这要求您尝试要求的项目的composer.json不使用版本字段 - 如果它有一个版本字段,则删除它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM