如何让grunt-autoprefixer为未编译的LESS文件添加前缀?

时间:2015-04-11 03:39:15

标签: css gruntjs less gruntfile

我和LESS一起工作,我想在我的LESS标记上运行grunt-autoprefixer而不编译LESS,因为我的LESS是在我的CMS上自动编译的。

这可能吗?

这是我的Gruntfile.js

module.exports = function(grunt) {

grunt.initConfig({
  concat: {
    sqs_template: {
      src: ['js/one.js', 'js/two.js'],
      dest: 'sqs_template/scripts/app.js',
    },
  }, 
  autoprefixer: {
        options: {
            remove: true,
        },
      multiple_files: {
      expand: true,
      flatten: true,
      src: 'css/*.less', 
      dest: 'sqs_template/css/',
    },
  },
    watch: {
      js: {
        files: ['js/**/*.js'],
        tasks: ['concat'],
      },
      css: {
        files: ['css/**/*.less'],
        tasks: ['autoprefixer'],
      },
    },
});

grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-autoprefixer');
grunt.loadNpmTasks('grunt-contrib-watch');


};

这是我尝试前缀的一个例子:

//------------------------------------*\

// SOME CSS

//------------------------------------*/

// Variables
@site-width: 960px;
@color: #333333;

// Mixins
.some-font {
    font-family: sans-serif;
    font-size: 1.5rem;
    font-weight: bold;
}

.some-container {
    display: flex;
    max-width: @site-width;
    margin: 0 auto;

    .some-container-inner {
        p {
            .some-font;
            color: @color;
        }
    }
}

我希望grunt-autoprefixer除了前缀我的LESS之外什么都不做,并把它放到sqs_template文件夹中。现在,grunt-autoprefixer错误,因为它似乎无法识别变量或混合。

这可能吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用mixins自行为所需值添加前缀,而不是自动修复。有LESS-Prefix库包含通常嫌疑人的mixins。

举个简单的例子,如果您使用的是LESS-Prefix(或者您自己也有类似的混音),您可以只包含mixin文件并输入.

div {
    .box-shadow(0px 0px 10px rgba(255,0,0,.5));
}

通过此mixin传递值:

.box-shadow(@args) {
    -webkit-box-shadow: @args;
    box-shadow: @args;
}

你最终会得到这个:

div {
    -webkit-box-shadow: 0px 0px 10px rgba(255,0,0,.5);
    box-shadow: 0px 0px 10px rgba(255,0,0,.5);
}