我正在尝试使用Laravel进行一些开发,出于某种原因,我无法安装任何依赖项require-dev
中的composer.json
部分中列出的任何软件包文件。默认情况下应该安装AFAIK,dev依赖项。我已经在--dev
上使用composer install
标记并使用了vendors/
标记。我还尝试删除composer.lock
的内容并删除~/.composer
和composer update
并从头开始重新安装所有依赖项,但仍然没有运气。我也尝试了vendor/laravel/framework/composer.json
命令的各种迭代。
例如,在"require-dev": {
"aws/aws-sdk-php": "2.4.*",
"iron-io/iron_mq": "1.4.*",
"pda/pheanstalk": "2.1.*",
"mockery/mockery": "0.8.0",
"phpunit/phpunit": "3.7.*"
},
中,它列出了这些:
composer.json
这些都没有安装。有什么想法我错过了什么?这是我的主要{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.0.*",
"rncryptor/rncryptor-php": "1.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/libraries",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "dev"
}
文件,FWIW。
composer self-update
我跑了composer --version
,所以它应该是最新版本。正在运行Composer version b20021cc6aa113069e4223b78d0074a1fc7dd4e8 2014-01-14 16:22:09
会显示:
{{1}}
答案 0 :(得分:23)
Composer只安装你的master composer.json文件的“require-dev”列表,如果这些软件包确实需要别的东西,那么只安装他们的“require”软件包,而不是他们的“require-dev” “包裹。
这实际上是件好事。如果您想开发一个包,您将克隆其存储库,安装开发所需的所有内容,并准备好贡献。但是,如果您需要为自己的软件提供该软件包,那么开发该特定软件包就没有用例 - 这是开发自己软件的用例。
所以tl; dr:Composer只安装composer.json的开发需求,而不是任何依赖项。
答案 1 :(得分:2)
有一个解决方案可以将供应商的require-dev软件包安装到您的项目中。
https://github.com/wikimedia/composer-merge-plugin
将其添加到项目的composer.json中
{
"require": {
"wikimedia/composer-merge-plugin": "dev-master"
},
"extra": {
"merge-plugin": {
"include": [
"vendor/laravel/framework/composer.json"
]
"recurse": true,
"replace": false,
"ignore-duplicates": false,
"merge-dev": true,
"merge-extra": false,
"merge-extra-deep": false,
"merge-scripts": false
}
}
}
拥有"merge-dev": true,
非常重要
跑
composer update
" vendor / laravel / framework / composer.json"的require-dev包。将安装在您的项目中。