我开始使用composer,我对它知之甚少,对web应用程序开发也有一些经验。
我只是浏览了一下Nettuts+ Tutorial,所以我有一个关于composer的基本问题。
{
"require": {
"laravel/framework": "4.0.*",
"way/generators": "dev-master",
"twitter/bootstrap": "dev-master",
"conarwelsh/mustache-l4": "dev-master"
},
"require-dev": {
"phpunit/phpunit": "3.7.*",
"mockery/mockery": "0.7.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-update-cmd": "php artisan optimize"
},
"minimum-stability": "dev"
}
无论出现在composer install --dev
"require-dev"
一起下载和安装。阅读一些composer文档,但仍然不明白我们使用"require-dev"
part的原因是什么?是不是因为我们想获得软件包的特定版本,而不是总是获得最新的稳定版本?发布于 2017-08-17 21:01:16
不同的环境
通常,软件将在不同的环境中运行:
development
testing
staging
production
不同环境中的不同依赖关系
在composer.json
的require
部分中声明的依赖项通常是在中运行应用程序或包所需的依赖项
staging
production
环境,而在require-dev
部分中声明的依赖关系通常是
developing
testing
环境。
例如,除了用于实际运行应用程序的包之外,可能还需要用于开发软件的包,例如:
friendsofphp/php-cs-fixer
(检测并修复编码风格issues)squizlabs/php_codesniffer
)(检测并修复编码风格issues)phpunit/phpunit
(使用tests)驱动开发
部署
现在,在development
和testing
环境中,您通常会运行
$ composer install
要安装production
和development
依赖项,请执行以下操作。
但是,在staging
和production
环境中,您只需要安装运行应用程序所需的依赖项,并且作为部署过程的一部分,您通常会运行
$ composer install --no-dev
仅安装production
依赖项。
语义学
换句话说,
require
require-dev
在运行以下命令时指示composer
应安装哪些包
$ composer install
或
$ composer install --no-dev
这就是全部。
注意:永远不会安装应用程序或软件包所依赖的软件包的开发依赖项
有关参考,请参阅:
发布于 2013-10-01 23:52:49
要求-开发(仅限根用户)
列出开发此软件包或运行测试等所需的软件包。默认情况下会安装根软件包的开发要求。install
或update
都支持--no-dev
选项,该选项可防止安装开发人员依赖项。
因此,运行composer install
还将下载开发依赖项。
,
发布于 2013-10-01 23:53:11
https://stackoverflow.com/questions/19117871
复制相似问题