我为laravel制作了自己的composer软件包,并使用subversion管理版本等。Composer不会从我们自己的软件包中安装require和require-dev软件包。
我的主要项目作曲家
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"repositories": [
{
"type": "svn",
"url": "https://path/to/package/title/"
}
],
"license": "MIT",
"type": "project",
"require": {
"php": ">=7.2.0",
"laravel/framework": "5.5.*",
"company/package-name": "~1.0.0"
},
包composer.json
{
"name": "company/package-name",
"require": {
"php": ">=7.2.0",
},
"require-dev": {
"phpunit/phpunit": "^6.0",
"orchestra/testbench": "^3.5"
},
}
在这种情况下,永远不会安装乐团/测试台。当我在主项目composer.json中添加它时,它将被安装,但是当它在composer.json包中时,composer不会安装它。
有人可以告诉我我的设置有什么问题吗?
答案 0 :(得分:0)
在正常情况下,最终应用程序构建不应该考虑开发包。如果需要此依赖项,请尝试将其移至 require 部分。
答案 1 :(得分:0)
require-dev
字段是“仅root用户”字段,仅当您将项目安装为root package时才考虑在内(换句话说,不是依赖项)。您的“主项目”是一个根包的示例。
require-dev
是“仅root用户”字段的原因是,它指定仅当某人想要在此软件包上进行开发或运行其测试时才需要的软件包要求。
如果您要安装orchestra/testbench
,我假设您想在主软件包中使用它来开发测试。在这种情况下,我建议将其添加到主程序包的require-dev
字段中。
如果您在主项目中不需要orchestra/testbench
软件包,则无需担心安装它。不需要使用您的company/package-name
软件包。