Das "leere" Thema von Magento 2 enthält die folgende Tag-Hierarchie.
<exclude>
<item type="file">Lib::jquery/jquery-ui-1.9.2.js</item>
<item type="file">Lib::jquery/jquery.ba-hashchange.min.js</item>
<item type="file">Lib::jquery/jquery.details.js</item>
<item type="file">Lib::jquery/jquery.details.min.js</item>
<item type="file">Lib::jquery/jquery.hoverIntent.js</item>
<item type="file">Lib::jquery/jquery.min.js</item>
<item type="file">Lib::mage/captcha.js</item>
<item type="file">Lib::mage/dropdown_old.js</item>
<item type="file">Lib::mage/list.js</item>
<item type="file">Lib::mage/loader_old.js</item>
<item type="file">Lib::mage/webapi.js</item>
<item type="file">Lib::moment.js</item>
<item type="file">Lib::requirejs/require.js</item>
<item type="file">Lib::date-format-normalizer.js</item>
<item type="file">Lib::legacy-build.min.js</item>
<item type="directory">Lib::modernizr</item>
<item type="directory">Lib::tiny_mce</item>
<item type="directory">Lib::varien</item>
<item type="directory">Lib::jquery/editableMultiselect</item>
<item type="directory">Lib::jquery/jstree</item>
<item type="directory">Lib::jquery/fileUploader</item>
<item type="directory">Lib::css</item>
<item type="directory">Lib::lib</item>
<item type="directory">Lib::extjs</item>
<item type="directory">Lib::prototype</item>
<item type="directory">Lib::scriptaculous</item>
<item type="directory">Lib::mage/requirejs</item>
<item type="directory">Lib::mage/adminhtml</item>
<item type="directory">Lib::mage/backend</item>
<item type="directory">Magento_Swagger::swagger-ui</item>
</exclude>
Wofür ist das hier? dh was wird von was ausgeschlossen? Wo und wann greift der Magento 2-Systemcode auf diese Informationen zu?
Antworten:
Magento 2 unterstützte das Bündeln von js / html-Dateien.
<exclude>
Knoten definiert eine Liste von Ressourcen, die nicht gebündelt werden sollen. siehe\Magento\Framework\View\Asset\Bundle\Manager
für weitere Einzelheitenquelle
Auf diese Konfiguration wird zugegriffen, wenn Sie den Befehl ausführen
In der Funktion
\Magento\Deploy\Model\Deployer::deployFile
sind folgende zwei Aufrufe von Interesse:Beim ersten Aufruf wird die Asset-Datei zum Dateisystem hinzugefügt. Ich bin nicht sicher, was der zweite Anruf genau macht. Dort verliere ich mich.
Wenn Sie jedoch diesem zweiten Aufruf folgen, werden Sie einige Validierungsfunktionen finden, die letztendlich dazu führen
Hier gibt es jedoch einige Probleme.
Erstens
\Magento\Framework\Config\View::getItems
scheint die Funktion immer ein leeres Array zurückzugeben.Zweitens
\Magento\Framework\View\Asset\Bundle\Manager::isExcludedFile
kehrt die Funktion immer zurückfalse
Denn
$asset->getSourceFile()
ist der absolute Pfad zur Asset-Datei, während$filePathInfo['excludedPath']
es sich um einen relativen Pfad handelt.Also, soweit ich das sehe wird die
<exclude>
Konfiguration sowieso nicht funktionieren. Aber wenn es funktionieren würde, würde der Vermögenswert aus dem ausgeschlossen werden\Magento\Framework\View\Asset\Bundle
.quelle