系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》
本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。
在 Magento 2 中添加自定义 CSS 预处理器可以帮助您更高效地管理和开发样式表。以下是使用自定义 CSS 预处理器的代码示例:
创建自定义 CSS 预处理器
在 Magento 2 根目录中创建一个名为 app/design/frontend/<Vendor>/<Theme>/web/css/source/_custom.less 的文件,并添加以下代码:
@primary-color: #007bff; body { background-color: #f8f8f8; color: #333; } h1, h2, h3 { color: @primary-color; }
这个代码定义了一个名为 @primary-color 的 LESS 变量,并在样式表中使用它来设置标题的颜色。
配置 Magento 2
在 Magento 2 根目录中打开 app/design/frontend/<Vendor>/<Theme>/requirejs-config.js 文件,并添加以下代码:
var config = { map: { '*': { custom: 'js/custom', less: 'js/less' } }, paths: { less: 'js/less', lessc: 'js/lessc.min', lessOpts: 'js/lessOpts' }, shim: { lessc: { exports: 'less' }, lessOpts: { deps: ['lessc'] } }, config: { mixins: { 'mage/apply/main': { 'js/apply-mixin': true } } } };
这个代码将 less 和 lessc 库添加到 Magento 2 的 JavaScript 依赖项中,并配置了 apply-mixin。
创建 LESS 编译器
在 Magento 2 根目录中创建一个名为 app/design/frontend/<Vendor>/<Theme>/web/js/less.js 的文件,并添加以下代码:
define([ 'jquery', 'lessc', 'lessOpts' ], function($, lessc, lessOpts) { 'use strict'; $.widget('custom.less', { options: { lessUrl: '/<Vendor>/<Theme>/en_US/css/custom.less' }, _create: function() { var self = this; var lessUrl = this.options.lessUrl; $.ajax({ url: lessUrl, dataType: 'text', success: function(data) { lessc.render(data, lessOpts, function(css) { $('head').append('<style>' + css + '</style>'); }); } }); } }); return $.custom.less; });
这个代码定义了一个名为 less 的 JavaScript 模块,并使用它来加载、编译和注入自定义 LESS 样式表。
添加 apply-mixin
在 Magento 2 根目录中创建一个名为 app/design/frontend/<Vendor>/<Theme>/web/js/apply-mixin.js 的文件,并添加以下代码:
define([ 'jquery', 'mage/apply/main' ], function($, mageApply) { 'use strict'; return function(target) { $.widget('mage.apply', target, { _loadFiles: function(files, callback) { var lessFile = files.filter(function(file) { return file.indexOf('custom.less') !== -1; })[0]; if (lessFile) { require(['less'], function(less) { require(['lessOpts'], function(lessOpts) { less.render('@import "' + lessFile + '";', lessOpts, function(css) { $('head').append('<style>' + css.css + '</style>'); callback(files); }); }); }); } else { this._super(files, callback); } } }); return target; }; });
这个代码添加了一个名为 `apply-mixin` 的 Magento 2 mixins,并使用它来加载、编译和注入自定义 LESS 样式表。
5. 保存文件并清除缓存
保存文件后,需要清除 Magento 2 的缓存,以便应用更改。可以通过在命令行中运行以下命令来清除缓存:
php bin/magento cache:clean
Copy code
现在,您可以使用自定义 CSS 预处理器来开发 Magento 2 主题。