Замена меньшего количества на 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 будет успешно обработан, то компиляция из меньшего источника вообще не будет запущена.