Laravel Mix:编译 Less 样式 Draft
Less 简介
Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使得 CSS 更易于维护和扩展。
但是对于浏览器来说是无法识别这种语言书写的代码的,因此我们需要通过编译将 Less 语言书写的样式表代码转化成 CSS 样式表代码。
Less 输入:
@base: #f938ab;
.box-shadow(@style, @c) when (iscolor(@c)) {
-webkit-box-shadow: @style @c;
box-shadow: @style @c;
}
.box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) {
.box-shadow(@style, rgba(0, 0, 0, @alpha));
}
.box {
color: saturate(@base, 5%);
border-color: lighten(@base, 30%);
div { .box-shadow(0 0 5px, 30%) }
}
编译后输出 CSS:
.box {
color: #fe33ac;
border-color: #fdcdea;
}
.box div {
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
编译方法
在 webpack.mix.js
文件中写入编译代码,如我们需要将 resources/less/app.less
目录中的 app.less
编译成 CSS:
mix.less('resources/less/app.less', 'public/css');
如果需要编译多个文件,那么我们就需要多次调用,可以通过流式调用实现:
mix.less('resources/less/app.less', 'public/css')
.less('resources/less/admin.less', 'public/css');
如果你希望编译后的 CSS 文件名可以自定义,第二个参数就需要传递一个带有文件名的完全路径,之前的示例中我们传递的是目录作为参数:
mix.less('resources/less/app.less', 'public/stylesheets/styles.css');
覆盖隐含的 Less 插件选项
如果需要覆盖隐含的 Less 插件选项,可以传递第三个可选参数给 mix.less()
方法,这个参数接收一个JS 对象:
mix.less('resources/less/app.less', 'public/css', {
strictMath: true
});