Замена меньшего количества на Sass / Удаление аргумента, ранее добавленного в тип через di.xml в Magento2


Итак, я расследую утверждение Бена Марка о том, что действительно легко переключить PHP без предварительного процессора на Sass. https://twitter.com/benmarks/status/590219053437833217 (Я на это не куплюсь)

Я внедрил препроцессор Sass и добавил в него через di.xml как показано ниже:

<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>

, который теперь обрабатывает мои файлы .sass в файлы .css (mabey пока не использует лучшую библиотеку PHP, но не беспокойтесь, это можно изменить позже).

Однако я не вы хотите, чтобы файлы .less были предварительно обработаны. Можно ли удалить аргумент с помощью di.xml это уже было добавлено в тип? В этом случае less уже добавляется в альтернативный источник в Magento/Developer/etc/di.xml . Я попытался добавить пустой узел с тем же именем элемента, но это не помогло мне.

Я мог бы, конечно, просто создать совершенно пустую базовую тему, в которой нет файлов.less, но это отстой, потому что тогда у меня также не было бы файлов шаблонов/макетов и пришлось бы создавать их и поддерживать в актуальном состоянии.

Текущий прогресс: https://github.com/TheExtensionLab/Magento2Sass

Если мы сможем это сделать, то это также поднимет проблему стилей администрирования, которые в настоящее время также существуют.меньше, но пересечем этот мост, когда мы придем к нему.

Или, если есть альтернативный способ сделать это, не требующий дополнительных затрат на файлы.less, но также имеющий мою тему и шаблоны из пустой темы, я весь внимание.

1 answers

Вы не можете удалить аргумент, объявленный в другом di.xml файл.

Но, похоже, версия кода из вашего примера немного устарела.

В текущей версии (2.0.0) вы можете управлять порядком сортировки альтернатив:

<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>

Если ваш исходный файл scss будет успешно обработан, то компиляция из меньшего источника вообще не будет запущена.

 6
Author: Vitalii K, 2015-11-23 09:51:07