December 7, 2016 —John Koster
The vendor:publish
command is used to publish any assets that are available from third-party vendor packages. It provides a few options to help specifically choose which assets should be published. The following table lists and describes each of the options that are available for use:
Option | Description |
---|---|
--force |
Supplying this flag will cause the vendor:publish command to overwrite any existing files. |
--provider=<PROVIDER> |
Supplying a value for <PROVIDER> will cause the command to only publish the assets associated with the specified service provider. |
--tag=* |
A list of tags to limit the types of assets that will be published. |
The following service provider will be used to demonstrate the usage of the vendor:publish
command:
1<?php 2 3namespace App\Providers; 4 5use Illuminate\Support\ServiceProvider; 6 7class ExampleServiceProvider extends ServiceProvider 8{ 9 /**10 * Bootstrap the application services.11 *12 * @return void13 */14 public function boot()15 {16 17 // Translations example.18 // `translations` is the tag.19 $this->publishes([20 __DIR__.'/example/translations' =>21 resource_path('lang/vendor/example')22 ], 'translations');23 24 // Migrations example.25 $this->publishes([26 __DIR__.'/example/migrations' => database_path('migrations')27 ], 'migrations');28 29 // Configuration example.30 // `config` is the tag.31 $this->publishes([32 __DIR__.'config/example.php' => config_path('example.php')33 ], 'config');34 35 // Public assets example.36 // `public` is the tag.37 $this->publishes([38 __DIR__.'example/assets' => public_path('vendor/example')39 ], 'public');40 }41 42 /**43 * Register the application services.44 *45 * @return void46 */47 public function register()48 {49 //50 }51}
The following command would simply attempt to publish the assets from all registered providers. The defaults will be used; no existing files will be overwritten and all tags will be publishes.
1# Publish all vendor assets.2php artisan vendor:publish
The following would only publish the assets for the App\Providers\ExampleServiceProvider
service provider:
1# Publish only the ExampleServiceProvider assets.2php artisan vendor:publish --provider="App\Providers\ExampleServiceProvider"
The following examples demonstrate different uses of the vendor:publish
command:
1# Force files to be overwritten if they exist.2php artisan vendor:publish --force3 4# Publish assets that have the specified tags.5php artisan vendor:publish --tag=public --tag=migrations
∎
The following amazing people help support this site and my open source projects ♥️
If you're interesting in supporting my work and want to show up on this list, check out my GitHub Sponsors Profile.