Laravel Mix:编译 Less 样式 Draft 2 个改进

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
});
本 Wiki 尚未完善,邀您参与 如何撰写一篇高品质的 Wiki?
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!