我开始使用 Composer,我对它知之甚少,并且对 Web 应用程序开发有一些经验。
我只是走过Nettuts+ 教程,所以我有关于作曲家的基本问题。
{
"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"
}
- 无论出现在
"require-dev"
部分,只能下载并安装composer install --dev
?
- 我读了一些作曲家的文档,但仍然不明白我们这样做的原因是什么
"require-dev"
部分?是不是因为我们想要具体version包而不是总是获得最新的稳定版本?
不同的环境
通常,软件将在不同的环境中运行:
development
testing
staging
production
不同环境下不同的依赖关系
中声明的依赖项require
的部分composer.json
通常是运行应用程序或包所需的依赖项
环境,而在require-dev
部分通常是所需的依赖项
环境。
例如,除了用于实际运行应用程序的包之外,开发软件可能还需要包,例如:
-
friendsofphp/php-cs-fixer
(检测并修复编码风格问题)
-
squizlabs/php_codesniffer
(检测并修复编码风格问题)
-
phpunit/phpunit
(使用测试来推动开发)
- etc.
部署
Now, in development
and testing
环境,你通常会运行
$ composer install
安装两个production
and development
依赖关系。
然而,在staging
and production
环境中,您只想安装运行应用程序所需的依赖项,并且作为部署过程的一部分,您通常会运行
$ composer install --no-dev
仅安装production
依赖关系。
语义学
换句话说,这些部分
指示composer
运行时应安装哪些软件包
$ composer install
or
$ composer install --no-dev
就这些。
Note您的应用程序或包所依赖的包的开发依赖项将永远不会被安装
作为参考,请参阅:
- https://getcomposer.org/doc/04-schema.md#require
- https://getcomposer.org/doc/04-schema.md#require-dev
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)