Trocando Less por Sass / Removendo um argumento adicionado anteriormente ao tipo via di.xml no Magento2

magento.stackexchange https://magento.stackexchange.com//questions/90960

  •  13-12-2019
  •  | 
  •  

Pergunta

Então, estou investigando a afirmação de Ben Mark de que é realmente fácil trocar o pré-processador PHP Less por um Sass. https://twitter.com/benmarks/status/590219053437833217 (Eu não compro)

Implementei um pré-processador Sass e adicionei-o via di.xml conforme abaixo:

<type name="Magento\Framework\View\Asset\PreProcessor\AlternativeSource">
    <arguments>
        <argument name="alternatives" xsi:type="array">
            <item name="scss" xsi:type="array">
                <item name="class" xsi:type="string">TheExtensionLab\SassPreProcessor\PreProcessor\Adapter\Sass\Processor</item>
            </item>
        </argument>
    </arguments>
</type>

Que agora processa meus arquivos .sass em arquivos .css (talvez ainda não use a melhor biblioteca PHP, mas não se preocupe, pode mudar isso mais tarde).

No entanto, não quero mais que os arquivos .less sejam pré-processados.É possível remover um argumento via di.xml que já foi adicionado a um tipo?Neste caso, less já foi adicionado ao AlternativeSource em Magento/Developer/etc/di.xml.Tentei adicionar um nó vazio com o mesmo nome de item, mas isso não funcionou para mim.

É claro que eu poderia simplesmente criar um tema base completamente vazio que não tivesse nenhum arquivo .less, mas isso é uma droga, porque então eu também não teria arquivos/layouts de modelo e teria que criá-los e mantê-los atualizados.

Progresso atual : https://github.com/TheExtensionLab/Magento2Sass

Se pudermos fazer isso, isso também trará à tona a questão dos estilos de administração que atualmente também são .less, mas cruzam essa ponte quando chegamos lá.

Ou se houver uma maneira alternativa de fazer isso, não tenha a sobrecarga dos arquivos .less, mas também tenha meu tema e modelos do tema em branco, sou todo ouvidos.

Foi útil?

Solução

Você não pode remover o argumento declarado em outro arquivo di.xml.

Mas parece que a versão do código do seu exemplo é um pouco antiga.

Na versão atual (2.0.0), você pode controlar a ordem de classificação das alternativas:

<virtualType name="AlternativeSourceProcessors">
    <arguments>
        <argument name="alternatives" xsi:type="array">
            <item name="scss" xsi:type="array">
                <item name="class" xsi:type="string">TheExtensionLab\SassPreProcessor\PreProcessor\Adapter\Sass\Processor</item>
            </item>
            <item name="less" xsi:type="array">
                <item name="after" xsi:type="string">scss</item>
            </item>
        </argument>
    </arguments>
</virtualType>

Se o seu arquivo de origem scss for processado com sucesso, a compilação de menos fontes não será acionada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top