如何从 subversion 包加载所需的依赖项
How to load required dependencies from subversion package
我为 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"
},
}
在这种情况下,从未安装 orchestra/testbench。当我在主项目composer.json中添加它时,它会被安装,但是当它在包composer.json中时,composer不会安装它。
有人能告诉我我的设置有什么问题吗?
在正常情况下,不应考虑将开发包用于应用程序的最终构建。如果您需要此依赖项,可以尝试将其移至 require 部分。
require-dev
field is a "root-only" field and is only taken into consideration when you install a project as the root package(换句话说,不作为依赖)。您的 "main project" 是根包的示例。
之所以 require-dev
是一个 "root-only" 字段,是为了指定只有当有人想在此包上开发或 运行 它的测试时才需要的包要求.
如果你想安装 orchestra/testbench
,我假设你想在你的主包中使用它来开发测试。在那种情况下,我建议将它添加到主包的 require-dev
字段中。
如果您的主项目中不需要orchestra/testbench
包,则无需安装。使用您的 company/package-name
包不需要它。
我为 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"
},
}
在这种情况下,从未安装 orchestra/testbench。当我在主项目composer.json中添加它时,它会被安装,但是当它在包composer.json中时,composer不会安装它。
有人能告诉我我的设置有什么问题吗?
在正常情况下,不应考虑将开发包用于应用程序的最终构建。如果您需要此依赖项,可以尝试将其移至 require 部分。
require-dev
field is a "root-only" field and is only taken into consideration when you install a project as the root package(换句话说,不作为依赖)。您的 "main project" 是根包的示例。
之所以 require-dev
是一个 "root-only" 字段,是为了指定只有当有人想在此包上开发或 运行 它的测试时才需要的包要求.
如果你想安装 orchestra/testbench
,我假设你想在你的主包中使用它来开发测试。在那种情况下,我建议将它添加到主包的 require-dev
字段中。
如果您的主项目中不需要orchestra/testbench
包,则无需安装。使用您的 company/package-name
包不需要它。