【问题标题】:require and require-dev dependencies of composer Laravel作曲家 Laravel 的 require 和 require-dev 依赖项
【发布时间】:2018-03-06 19:09:44
【问题描述】:

我有一个 Laravel 应用程序,我想安装 require 依赖项,但我想知道 composer 如何知道是加载开发依赖项还是生产依赖项?

只是对这个概念感到困惑,所以如果有人可以为我澄清这个概念,那将有很大帮助。

【问题讨论】:

标签: php laravel composer-php


【解决方案1】:

当你运行composer install --dev 时,composer 会安装所有的包,包括require-dev。这是默认行为,排除标志将导致相同的操作。

当您运行 composer install --no-dev 时,composer 会跳过 require-dev 包。

此外,除非您明确要求,否则 composer 不会安装 required 包的 require-dev

【讨论】:

    【解决方案2】:

    常规的require 依赖项是您将始终使用的此类包,这意味着框架本身(在本例中为 Laravel)、您的应用程序代码和/或其他第 3 方代码都依赖于此类包。这些依赖项通常被称为 prod 依赖项,因为您在生产中使用它们(因为没有它们,您的应用程序将无法运行)

    require-dev 依赖项是“可选”的,因为您的核心应用程序逻辑可以运行,但您将无法运行“开发”内容,例如单元测试(phpunit/phpunit 包)和实例化 fake数据(fzaninotto/faker)。

    我希望这会有所帮助!

    【讨论】:

    • 我理解其中的区别,但是 composer 如何知道环境是生产环境还是开发环境?
    • composer install 会安装composer.json依赖,所以我不明白的是composer怎么知道当前环境是什么?
    • Composer 默认安装“顶级”或根包的requirerequire-dev。它不会安装required 包的require-dev,除非您遍历该安装并在其他人的目录中手动composer install
    猜你喜欢
    • 2017-04-20
    • 2019-12-25
    • 2018-12-23
    • 2015-10-14
    • 2019-06-12
    • 1970-01-01
    • 2023-02-21
    • 2014-04-20
    • 2013-05-16
    相关资源
    最近更新 更多