在使用 laravel mix 编译 sass 后,仅显示 webkit

after compiling sass using laravel mix only webkit is shown

我使用了以下 scss 代码用于 mixin,但编译后 -moz- 和 -o- 供应商前缀未显示在已编译的 css 文件中。

@mixin transition($move) {

     -webkit-transition: $move;
      -moz-transition: $move;
      -o-transition: $move;
      transition: $move;
    }

    a {
      &:hover, &:focus {
        color: $brand-color;
      }
      @include transition(all 0.2s linear);
    }

使用 mix 编译后:

a {
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}

a:hover,
a:focus {
  color: #4676fa;
}

提前致谢。 :)

这是因为 laravel 根据浏览器版本限制使用 autoprefixer 到 add/remove 供应商前缀。现在几乎每个浏览器都支持transition

您可以看到转换支持 here

因此,删除无用的代码会减小包的大小。

如果您真的想支持旧版浏览器,请设置此配置。

对于 Laravel 混合(最新)

在您的 webpack.mix.js 之上添加此代码。

let mix = require('laravel-mix');

mix.options({
    postCss: [
        require('autoprefixer')({
            browsers: ['last 40 versions'],
        })
    ]
});

...
...

对于Laravel灵药

在您的 gulpfile.js

之上添加此代码
var elixir = require('laravel-elixir');

elixir.config.css.autoprefix.options.browsers = ['last 40 versions'];

...
...