使用sass和autoprefixer为grunt任务设置目标或多个文件?

时间:2017-07-04 14:15:43

标签: node.js sass gruntjs autoprefixer

我正在为任务设置一个grunt文件。我的目标是从sass文件(scss)创建一个css文件,并为所有需要的属性添加一个autoprefix。最初我使用了propriety multifiles,但它不起作用,所以现在我使用的目标功能很好,但我的问题是,即使我的目标是同一个文件,它也会在我的文件夹中创建另一个文件放下我所有的sass文件。

到目前为止,我的文件如下:

module.exports = function (grunt) {

    grunt.initConfig({

        pkg: grunt.file.readJSON('package.json'),

        sass: {
            dev: {
                options: {
                    style: 'expanded',
                    sourcemap: 'none',
                },
                files: {
                    '../style.css': 'scss/style.scss'
                }
            },
            dist: {
                options: {
                    style: 'compressed',
                    sourcemap: 'none',
                },
                files: {
                    '../style-min.css': 'scss/style.scss'
                }
            }
        },
        autoprefixer: {
            options: {
                browsers: ['last 6 versions']
            },
            target: {
                expand: true,
                flatten: true,
                src: '../style.css',
                dest: ''
            }
        },
        watch: {
            css: {
                files: '**/*.scss',
                tasks: ['sass', 'autoprefixer']
            }
        },
    });

    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-autoprefixer');
    grunt.registerTask('default', ['watch']);
}

我的目标是为我的所有css文件设置一个全局任务,如下所示:

target: {
    expand: true,
    flatten: true,
    src: '*.css',
    dest: ''
}

但是即使我尝试了类似的东西它也无法正常工作:

target: {
        expand: true,
        flatten: true,
        src: '../*.css',
        dest: ''
    }

有谁知道为什么?

1 个答案:

答案 0 :(得分:1)

使用cwd(代表当前工作目录),这是grunt查找与src中的模式匹配的文件的路径。还要定义dest,以便在同一文件夹中创建目标文件。

target: {
    expand: true,
    flatten: true,
    cwd: '../',
    src: [ '**/*.css' ],
    dest: '../'
}
相关问题