esign/laravel-install-command

简化存根发布并轻松管理Composer和Node包

1.1.0 2024-03-12 22:20 UTC

This package is auto-updated.

Last update: 2024-09-12 23:31:20 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

此包通过Laravel命令提供了一种简单的方式发布存根和安装Composer和Node包。当创建需要发布存根并安装Composer和Node包的包时,这可能很有用。

安装

您可以通过composer安装此包

composer require esign/laravel-install-command

使用方法

要使用InstallJob,您可以创建一个新的命令,该命令扩展了InstallCommand类。在这个命令中,您可以指定要发布的存根以及要安装的Composer和Node包。

use Esign\InstallCommand\InstallCommand;
use Esign\InstallCommand\ValueObjects\AppendableFile;
use Esign\InstallCommand\ValueObjects\ComposerPackage;
use Esign\InstallCommand\ValueObjects\NodePackage;
use Esign\InstallCommand\ValueObjects\PublishableFile;

class MyInstallCommand extends InstallCommand
{
    protected $signature = 'my-install-command';
    protected $description = 'Publish my stubs and install my packages';

    protected function publishableFiles(): array
    {
        return [
            new PublishableFile(
                path: __DIR__ . '/../../stubs/my-stub.stub',
                target: base_path('my-stub.php'),
            ),
            new AppendableFile(
                path: __DIR__ . '/../../stubs/my-appendable-stub.stub',
                target: base_path('my-appendable-stub.php'),
            ),
            new AppendableFile(
                path: __DIR__ . '/../../stubs/my-appendable-stub.stub',
                target: base_path('my-appendable-stub.php'),
                search: 'insert-after-line-with-this-string',
            ),
        ];
    }

    protected function composerPackages(): array
    {
        return [
            new ComposerPackage(name: 'my/composer-package'),
            new ComposerPackage(name: 'my/specific-composer-package', version: '^1.0'),
            new ComposerPackage(name: 'my/dev-composer-package', dev: true),
        ];
    }

    protected function nodePackages(): array
    {
        return [
            new NodePackage(name: 'my/node-package'),
            new NodePackage(name: 'my/specific-node-package', version: '^1.0'),
            new NodePackage(name: 'my/dev-node-package', dev: true),
        ];
    }
}

测试

composer test

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件