El tema "en blanco" de Magento 2 incluye la siguiente jerarquía de etiquetas.
<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>
¿Para qué es esto aquí? es decir, ¿qué se excluye de qué? ¿Dónde y cuándo accede el código del sistema Magento 2 a esta información?
Respuestas:
Magento 2 admite la agrupación de archivos js / html.
<exclude>
El nodo define la lista de recursos que no deben agruparse. ver\Magento\Framework\View\Asset\Bundle\Manager
para más detallesfuente
Se accede a esta configuración cuando ejecuta el comando
En la función
\Magento\Deploy\Model\Deployer::deployFile
, las siguientes dos llamadas son de interés:La primera llamada agregará el archivo de activos al sistema de archivos. No estoy seguro de qué hace exactamente la segunda llamada. Ahí es donde me estoy perdiendo.
Sin embargo, si sigue esta segunda llamada, encontrará algunas funciones de validación, que eventualmente conducen a
Pero, hay algunos problemas aquí.
Primero, la función
\Magento\Framework\Config\View::getItems
siempre parece devolver una matriz vacía.Segundo, la función
\Magento\Framework\View\Asset\Bundle\Manager::isExcludedFile
siempre regresaráfalse
Porque
$asset->getSourceFile()
es la ruta absoluta al archivo de activos, mientras que$filePathInfo['excludedPath']
es una ruta relativa.Entonces, hasta donde puedo ver, la
<exclude>
configuración no funcionará de todos modos. Pero si funcionara, el activo quedaría excluido de\Magento\Framework\View\Asset\Bundle
.fuente