laravelplus / installer
LaravelPlus Installer: artisan command to bootstrap Laravel+Inertia apps
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/laravelplus/installer
Requires
- php: ^8.4
- laravel/framework: ^12.28.1
- symfony/process: ^7.1
This package is not auto-updated.
Last update: 2025-11-01 07:47:45 UTC
README
A professional, pattern-driven installer to bootstrap Laravel + Inertia + Vue apps with an excellent developer experience. It features a composable workflow, interactive multi-selects for optional packages, composer-aware choices, and clean architecture for easy extension.
Quickstart
composer require laravelplus/installer --dev php artisan laravelplus:install
Non-interactive examples:
# Production, skip audit and build, keep existing vendor/node_modules php artisan laravelplus:install --mode=prod --yes --no-audit --no-build --no-clean # Dry run (prints exact plan) php artisan laravelplus:install --dry
Start dev environment:
composer run dev
Features
- Pattern-driven architecture: Workflow orchestrator, Steps, Strategies, Reporters
- Interactive UX: multi-select optional packages (Official, LaravelPlus, 3rd‑party)
- Composer-aware selection: already installed packages are detected and skipped
- Profiles: save and reuse previous selections
- Per-step elapsed time; clean progress output and final recap
- Events:
StepStarting,StepSucceeded,StepFailed,WorkflowCompleted - Extensible via container‑tagged steps with priorities
Configuration
packages/laravelplus/installer/config/laravelplus_installer.php:
return [ 'clean_dependencies_by_default' => false, 'official_package_options' => [ ['key' => 'cashier', 'label' => 'Laravel Cashier', 'composer' => 'laravel/cashier', 'dev' => false], // ... ], 'laravelplus_package_options' => [ ['key' => 'fortress', 'label' => 'LaravelPlus Fortress', 'composer' => 'laravelplus/fortress', 'dev' => false], // ... ], 'third_party_package_options' => [ ['key' => 'pint', 'label' => 'laravel/pint', 'composer' => 'laravel/pint', 'dev' => true], // ... ], // Controls order of tagged steps 'step_priorities' => [ /* class => priority */ ], ];
Extending the Installer
Bind your step and tag it laravelplus.installer.step:
$this->app->bind(MyCustomStep::class, fn ($app) => new MyCustomStep(/* deps */)); $this->app->tag([MyCustomStep::class], 'laravelplus.installer.step');
Optionally set priority in step_priorities to position it.
Troubleshooting
- Composer auth issues: run
composer config -g github-oauth.github.com <token> - npm audit failures: the installer treats audit as non‑fatal; use
--no-auditto skip - Memory limit:
COMPOSER_MEMORY_LIMIT=-1 composer install
Contributing
PRs are welcome. Please run Pint and PHPStan before submitting.
License
MIT © LaravelPlus