如何确保我正在编写的包将在目标应用程序的require-dev中?

时间:2017-10-08 13:43:43

标签: php composer-php

我正在编写一个仅在开发人员本地计算机上安装的软件包。我该怎么做才能确保它出现在require-dev中的其他包旁边,如phpunit等。

另外,为什么我甚至不愿在我的软件包的require-dev中列出任何依赖项,因为它们永远不会在目标应用程序中安装?

我的composer.json:

{
  "name": "alquesadilla/my-package-name",
  "description": "Some thing to help you in your local development.",
  "type": "library",
  "license": "MIT",
  "version": "1.0.0",
  "authors": [
    {
      "name": "Name",
      "email": "email@email.com",
      "homepage": "http://someurl.com"
    }
  ],
  "bin": ["bin/enforce"],
  "autoload": {
    "psr-4": {
      "alquesadilla\\MyClass\\": "src/"
    }
  },
  "require": {
    "squizlabs/php_codesniffer": "3.1.*",
    "exussum12/coverage-checker": "0.7.*"
  }
}

1 个答案:

答案 0 :(得分:2)

  

我可以做些什么来确保它出现在require-dev中的其他软件包旁边,如phpunit等。

你不能。

唯一可能的方法是通过下游composer.json中的安装程序脚本,但这意味着您需要一种方法来强制执行此操作,并且我不知道这一点。

供参考,请参阅https://getcomposer.org/doc/articles/scripts.md#installer-events

  

另外,为什么我甚至不愿在我的软件包的require-dev中列出任何依赖项,因为它们永远不会在目标应用程序中安装?

请参阅What is the difference between require and require-dev sections in composer.json?