我正在使用尚未发布的Laravel 5进行实验项目。最近的提交似乎有效地破坏了事情,但不是等待事情得到解决我宁愿继续使用我知道的开发版本在监视commit log时工作。我当前的composer.json
文件看起来像这样(相关代码段):
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "~5.0",
"illuminate/html": "~5.0"
},
我试图这样做:
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",
"illuminate/html": "~5.0"
},
Per the docs Composer支持绑定到特定SHA的功能,但是当我运行composer update
时,我收到了消息:
[UnexpectedValueException]
Could not parse version constraint ~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c:
Invalid version string "~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c"
当然,我已经尝试了各种变体(5.0#...
,5#...
等),但都会产生相同的错误消息。投入赞赏!
答案 0 :(得分:1)
您必须使用分支别名。您应该使用5.0-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c
作为版本:
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "5.0-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",
"illuminate/html": "~5.0"
},
答案 1 :(得分:0)
您可以尝试:
"laravel/framework": "5.0.x-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",
而不是:
"laravel/framework": "~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",
并使用以下命令安装:
composer install --prefer-source
我确切的composer.json
文件是:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "5.0.x-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",
"illuminate/html": "~5.0"
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "dev"
}
但是,您需要注意,在安装过程中会显示以下消息:
Installing laravel/framework (dev-master cd37f40)
Cloning cd37f40bba5dced6b1c30d313df2e46c5c33a62c
cd37f40bba5dced6b1c30d313df2e46c5c33a62c is gone (history was rewritten?), recovered by checking out 5300b9eb19b5aeac8746835558419d274ee21621
所以看来这个提交不可用,但我不是作曲家专家,所以我可能错了。
修改强>
我已经尝试了许多其他设置,但每次都失败或者得到另一次提交而不是你想要的设置。
答案 2 :(得分:0)
这是类似的问题,答案对我有帮助:
composer | laravel 5 - Updating dependencies but the framework itself
"require": {
"laravel/framework": "dev-master#49e3c77b518547bb661b1de4fda64a3ae0c5c505",
...
}
答案 3 :(得分:-1)
叹了口气,答案就像一道闪电击中了我。 https://github.com/laravel/laravel/commits/develop显然是laravel / laravel提交,而不是 laravel / framework提交。
即使我的荒谬疏忽得到了解决,我仍然不清楚如何暂时锁定特定版本的laravel / laravel。有一些解决方法可以确定,但如果存在这样的解决方案,我正在寻找正确的方式。
对于轮子旋转@Wouter和@Marcin感到抱歉,谢谢你的帮助。