具有dev依赖项的Composer安装包

时间:2017-09-22 14:01:20

标签: php laravel

如何安装具有dev依赖关系的composer包?

例如:

当我有这个包裹时:

https://github.com/spatie/laravel-demo-mode

我跑:

composer require spatie/laravel-demo-mode

未安装测试文件夹?!

1 个答案:

答案 0 :(得分:3)

总之,你不(永远)。如果你想贡献,你需要设置新的Laravel项目并设置composer来自动加载你的软件包版本,可以从你的fork或从磁盘上的某个地方。当你这样做时,你只是使用你的软件包版本(再次没有可能运行软件包的测试)。

为了运行包的测试,您需要将目录更改为包的根目录并安装其依赖项($ composer install),完成后,您可以运行$ phpunit。< / p>

当我想贡献时,我通常做的是:

  • 准备好空Laravel项目(无版本)
  • 根目录中有packages个文件夹
  • packages文件夹中,我通常会$ git clone <repo fork>(一次可能包含多个包)
  • 如果我想运行软件包的测试,我会$ composer install$ phpunit(您的IDE可能会对您的重复定义发出吱吱声,但您可能会忽略它)
  • 改进并测试包文件夹
  • 中的包的代码
  • 立即在Laravel项目上“实时”测试您的更改

composer.json 可能如下所示:

...
"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/",
        "Vendor\\Package\\": "packages/path-to-src/"
    }
},
...

您可能会发现有用的示例repo我使用https://github.com/Kyslik/column-sortable-example来演示如何使用我维护的包。主要看一下文件夹结构 composer.json。

可能有更好的方式来做贡献,但我只找到(并开发)了这个。

如果我的想法有很小的变化(比如拼写错误,或只是返回类型或任何“小”),我会在供应商文件夹中更改包,看看它是否破坏了什么;之后,我在Github的Web界面中分叉包源并编辑更改。要清理,只需从Laravel项目的根文件夹中运行$ composer install/update