From 2c2c4193323d000edf7446b59bc14d123ec59bb7 Mon Sep 17 00:00:00 2001 From: dimti Date: Mon, 18 Jul 2022 13:31:13 +0300 Subject: [PATCH] * allow use dev vitejs build without manifest reader --- Plugin.php | 23 ++++++++++++++--------- classes/TwigFilters.php | 10 +++++++++- classes/bundlers/Bundler.php | 8 +++++--- classes/bundlers/ViteBundler.php | 8 ++------ 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/Plugin.php b/Plugin.php index 634dbc0..5439542 100644 --- a/Plugin.php +++ b/Plugin.php @@ -4,6 +4,7 @@ use Backend; use Cms\Classes\Theme; use System\Classes\PluginBase; use Wpstudio\AssetsManifest\Classes\Bundlers\Bundler; +use Wpstudio\AssetsManifest\Classes\Bundlers\ViteBundler; use Wpstudio\AssetsManifest\Classes\ManifestReader; use Wpstudio\AssetsManifest\Classes\TwigFilters; use Config; @@ -37,15 +38,19 @@ class Plugin extends PluginBase { app()->singleton(Bundler::class, Config::get('wpstudio.assetsmanifest::bundler')); - app()->singleton(ManifestReader::class, fn() => new ManifestReader( - Theme::getActiveTheme()->getPath( - sprintf( - '%s/%s/manifest.json', - Theme::getActiveTheme()->getDirName(), - Config::get('wpstudio.assetsmanifest::vite_path_build') - ) - ), - )); + if (Config::get('wpstudio.assetsmanifest::vite_dev_enabled') != ViteBundler::class || + !Config::get('wpstudio.assetsmanifest::vite_dev_enabled') + ) { + app()->singleton(ManifestReader::class, fn() => new ManifestReader( + Theme::getActiveTheme()->getPath( + sprintf( + '%s/%s/manifest.json', + Theme::getActiveTheme()->getDirName(), + Config::get('wpstudio.assetsmanifest::vite_path_build') + ) + ), + )); + } } /** diff --git a/classes/TwigFilters.php b/classes/TwigFilters.php index 1a45803..a11315e 100644 --- a/classes/TwigFilters.php +++ b/classes/TwigFilters.php @@ -61,6 +61,10 @@ class TwigFilters $bundler->validateBundlerType(Bundler::BUNDLER_VITE); assert($bundler instanceof ViteBundler); + if ($bundler->isViteDevEnabled()) { + return ''; + } + return $bundler->getEntrypointStylesheets($entrypointName); } @@ -76,7 +80,11 @@ class TwigFilters $bundler->validateBundlerType(Bundler::BUNDLER_VITE); assert($bundler instanceof ViteBundler); - return $bundler->getEntrypointAssets($entrypointName); + if ($bundler->isViteDevEnabled()) { + return $bundler->getScriptTag($entrypointName); + } else { + return $bundler->getEntrypointAssets($entrypointName); + } } public static function viteDevClientScriptTag() diff --git a/classes/bundlers/Bundler.php b/classes/bundlers/Bundler.php index 734c3eb..9eea8f8 100644 --- a/classes/bundlers/Bundler.php +++ b/classes/bundlers/Bundler.php @@ -13,11 +13,13 @@ abstract class Bundler self::BUNDLER_VITE => ViteBundler::class, ]; - protected ManifestReader $manifestReader; + protected ?ManifestReader $manifestReader; - public function __construct(ManifestReader $manifestReader) + public function __construct(?ManifestReader $manifestReader = null) { - $this->manifestReader = $manifestReader; + if (isset($manifestReader)) { + $this->manifestReader = $manifestReader; + } } public function getBundlerType(): string diff --git a/classes/bundlers/ViteBundler.php b/classes/bundlers/ViteBundler.php index e1769ba..259f0e4 100644 --- a/classes/bundlers/ViteBundler.php +++ b/classes/bundlers/ViteBundler.php @@ -60,10 +60,6 @@ class ViteBundler extends Bundler */ public function getEntrypointStylesheets(string $entrypointName): string { - if ($this->isViteDevEnabled()) { - return ''; - } - $entrypoint = $this->getViteEntrypoint($entrypointName); $stylesheetTags = collect(); @@ -85,7 +81,7 @@ class ViteBundler extends Bundler return $stylesheetTags->implode(PHP_EOL); } - private function getStylesheetTag(string $href): string + public function getStylesheetTag(string $href): string { return sprintf( '', @@ -93,7 +89,7 @@ class ViteBundler extends Bundler ); } - private function getScriptTag(string $entrypointName, ViteEntrypoint $entrypoint): string + public function getScriptTag(string $entrypointName, ?ViteEntrypoint $entrypoint = null): string { return sprintf( '',