composer-php – composer.json中require和require-dev部分之间的区别是什么?

我开始使用作曲家,我对它知之甚少,并且对Web应用程序开发有一点经验.

我只是走过Nettuts+ Tutorial,所以我有关于作曲家的基本问题.

{
  "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”部分出现什么,只会下载并安装作曲家安装–dev?
>我读了一些作曲家的文档,但仍然不明白我们有“require-dev”部分的原因是什么?是因为我们想获得特定版本的软件包,而不是总是获得最新的稳定版本?

解决方法

不同的环境

通常,软件将在不同的环境中运行:

>发展
>测试
>分期
>生产

不同环境下的不同依存关系

在composer.json的require部分中声明的依赖项通常是运行应用程序或包中所需的依赖项.

>分期
>生产

环境,而require-dev部分中声明的依赖项通常是需要的依赖项

>发展
>测试

环境.

例如,除了用于实际运行应用程序的软件包之外,可能还需要软件包来开发软件,例如:

> friendsofPHP / PHP-cs-fixer(用于检测和修复编码样式问题)
> squizlabs / PHP_codesniffer(用于检测和修复编码样式问题)
> PHPunit / PHPunit(使用测试来驱动开发)
>等

部署

现在,在开发和测试环境中,您通常会运行

$composer install

安装生产和开发依赖项.

但是,在登台和生产环境中,您只想安装运行应用程序所需的依赖项,并且作为部署过程的一部分,您通常会运行

$composer install --no-dev

仅安装生产依赖项.

语义

换句话说,这些部分

>要求
> require-dev

表示作曲家在你跑步时应该安装哪些包

$composer install

要么

$composer install --no-dev

就这些.

注意永远不会安装应用程序或程序包所依赖的程序包的开发依赖项

供参考,请参阅:

> https://getcomposer.org/doc/04-schema.md#require
> https://getcomposer.org/doc/04-schema.md#require-dev

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...