Почему Magento 2 использует PHP для компиляции меньшего количества файлов?
Чего я не понимаю, так это того, что, поскольку файлы .less уже будут скомпилированы во время разработки с помощью Grunt, почему Magento 2 все еще использует oyejorge/less для компиляции меньшего количества файлов с помощью PHP?
Кроме тем, есть ли еще где-нибудь в Magento, где используются css-файлы.less?
2 answers
Короче говоря, это вопрос расширяемости. Как вы, возможно, знаете, вы умеете пользоваться.меньше файлов внутри пользовательских модулей. Давайте представим ситуацию, когда магазин использует какую-то пользовательскую тему, и в вашем расширении вы хотите сделать цвет некоторых элементов таким же, как цвет заголовка текущей темы, например:
section h1: {
color: @heading-color
}
В этом случае ваш внутренний номер может использовать цвет заголовка, не зная точного цвета. Если у вас есть предварительно скомпилированный CSS в вашем расширении из коробки, у вас будет это цвет жестко закодирован, или вместо этого вам придется использовать набор CSS-классов стандартной темы. Таким образом, использование PHP БЕЗ компиляции Magento 2 позволяет более удобным и гибким способом интегрировать стороннее расширение в пользовательские темы.
В режиме разработчика МЕНЬШЕ компиляции происходит на лету, когда запрашивается ресурс, который еще не скомпилирован. Это работает только с PHP.
Также Magento добавляет свои собственные функции в LESS: //@magentoImport
, который учитывает резервную версию темы и предварительно обрабатывается с помощью PHP, прежде чем произойдет фактическая компиляция LESS. Так что в любом случае нет способа обойти использование PHP. Задача Magento 2 Grunt фактически запускает компиляцию PHP через bin/magento
.