Laravel Путь Horizon:
Так что после прочтения всего кода Laravel Horizon я смог понять, как это выглядит ниже:
1- Сначала вы регистрируете свои vue компоненты, такие как Laravel, например, example-component в приложении. js. поэтому вам нужно создать собственное приложение. js для пакета Laravel внутри ресурсов \ js:
Vue.component('example-component', require('./components/ExampleComponent.vue').default);
2-секундный файл webpack.mix. js в файле root вашего пакета и скопируйте ваше приложение. js в public \ vendor \ packagename \, как показано ниже:
mix
.options({
terser: {
terserOptions: {
compress: {
drop_console: true
}
}
}
})
.setPublicPath("public")
.js("resources/js/app.js", "public")
.version()
.webpackConfig({
resolve: {
symlinks: false,
alias: {
"@": path.resolve(__dirname, "resources/js/")
}
},
plugins: [new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)]
});
3 - запустите "npm run dev" в вашем пакете, чтобы скомпилировать ваше приложение. js в папке publi c внутри вашего пакета.
4- publi sh ваш public \ app. js файл в appserviceprovider. php вашего пакета:
$this->publishes([
__DIR__.'/../resources/views' => resource_path('views/vendor/xoadmin'),
], 'views');
5 - теперь в ваших файлах просмотра ресурсов вы можете добавить файл приложения. js, как показано ниже:
<script src="{{asset(mix('app.js', 'vendor/packagename'))}}"></script>
6 - создать команду для публикации sh файла приложения. js из ваш пакет публикует папку c в папку laravel public \ vendor \ package.
<?php
namespace Vendor\PackageName\Console;
use Illuminate\Console\Command;
class AssetsCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'packagename:assets';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Re-publish the packagename assets';
/**
* Execute the console command.
*
* @return void
*/
public function handle()
{
$this->call('vendor:publish', [
'--tag' => 'packagename-assets',
'--force' => true,
]);
$this->call('vendor:publish', [
'--tag' => 'views',
'--force' => true,
]);
}
}
Все приведенные выше коды можно найти в Laravel Horizon Github-репозитории , Я просто объясняю, как людям легче понять.