Le thème "vierge" de Magento 2 comprend la hiérarchie de balises suivante.
<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>
Qu'est-ce que c'est ici? c'est-à-dire ce qui est exclu de quoi? Où et quand le code système de Magento 2 accède-t-il à ces informations?
Réponses:
Magento 2 a pris en charge le regroupement de fichiers js / html.
<exclude>
le nœud définit la liste des ressources qui ne doivent pas être regroupées. voir\Magento\Framework\View\Asset\Bundle\Manager
pour plus de détailsla source
Cette configuration est accessible lorsque vous exécutez la commande
Dans la fonction
\Magento\Deploy\Model\Deployer::deployFile
, les deux appels suivants sont intéressants:Le premier appel ajoutera le fichier d'actif au système de fichiers. Je ne sais pas exactement ce que fait le deuxième appel. C'est là que je me perds.
Cependant, si vous suivez ce deuxième appel, vous trouverez quelques fonctions de validation, qui conduiront éventuellement à
Mais, il y a quelques problèmes ici.
Tout d'abord, la fonction
\Magento\Framework\Config\View::getItems
semble toujours renvoyer un tableau vide.Deuxièmement, la fonction
\Magento\Framework\View\Asset\Bundle\Manager::isExcludedFile
reviendra toujoursfalse
Car
$asset->getSourceFile()
est le chemin absolu du fichier d'actif, tandis que$filePathInfo['excludedPath']
est un chemin relatif.Donc, pour autant que je puisse voir, la
<exclude>
configuration ne fonctionnera pas de toute façon. Mais si cela fonctionnait, l'actif serait exclu du\Magento\Framework\View\Asset\Bundle
.la source