O tema "em branco" do Magento 2 inclui a seguinte hierarquia de tags.
<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 que é isso aqui? ou seja, o que está sendo excluído do quê? Onde e quando o código do sistema Magento 2 acessa essas informações?
Respostas:
O Magento 2 suportou o pacote de arquivos js / html.
<exclude>
O nó define a lista de recursos que não devem ser agrupados. veja\Magento\Framework\View\Asset\Bundle\Manager
para detalhesfonte
Essa configuração é acessada quando você executa o comando
Na função
\Magento\Deploy\Model\Deployer::deployFile
, as duas chamadas a seguir são interessantes:A primeira chamada adicionará o arquivo do ativo ao sistema de arquivos. Não sei ao certo o que a segunda chamada faz exatamente. É aí que eu estou me perdendo.
No entanto, se você seguir esta segunda chamada, encontrará algumas funções de validação, que eventualmente levarão a
Mas, existem alguns problemas aqui.
Primeiro, a função
\Magento\Framework\Config\View::getItems
sempre parece retornar uma matriz vazia.Segundo, a função
\Magento\Framework\View\Asset\Bundle\Manager::isExcludedFile
sempre retornaráfalse
Porque
$asset->getSourceFile()
é o caminho absoluto para o arquivo do ativo, enquanto$filePathInfo['excludedPath']
é um caminho relativo.Então, até onde eu posso ver, a
<exclude>
configuração não funcionará de qualquer maneira. Mas se funcionasse, o ativo seria excluído do\Magento\Framework\View\Asset\Bundle
.fonte