手表和sass的不同grunt任务

时间:2016-04-16 12:38:46

标签: javascript css sass gruntjs pug

我有一个咕噜咕噜的项目,我正在使用sass和jade。我希望在开发时可以为sass创建任务,以便在进行故障排除时扩展样式,并在我完成时完成任务。项目然后风格将被压缩。我是新手,不知道如何去做。

我的gruntfile

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        jade: {
            compile: {
                options: {
                    pretty: true,
                    nospawn: false
                },

                files: {
                    'index.html' : 'src/index.jade'
                }
            }
        },

        sass: {
            dist: {
                options: {
                    style: 'expanded',
                    nospawn: false
                },

                files: {
                    'build/css/app.css' : 'src/sass/app.sass'
                }
            }
        },

        watch: {
            jade: {
                files: 'src/**/*.jade',
                tasks: ['jade']
            },

            css: {
                files: 'src/sass/**/*.sass',
                tasks: ['sass']
            },

            options: {
                livereload: true,
                nospawn: false
            }
        },

        connect: {
            server: {
                options: {
                    port: 9000,
                    base: '.',
                    hostname: '0.0.0.0',
                    protocol: 'http',
                    livereload: true,
                    open: true
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-jade');
    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-connect');

    grunt.registerTask('default', ['connect', 'watch']);
};

1 个答案:

答案 0 :(得分:2)

要获得压缩的css而不是展开,您首先需要创建另一个sass-task(所以在sass:{})内,例如将其称为finish:并更改压缩设置。

看起来应该是这样的:

finish: {
   options: {
            style: 'compressed',
            nospawn: false
           },

   files: {
            'build/css/app.css' : 'src/sass/app.sass'
           }
}

然后grunt.registerTask('default', ['connect', 'watch']);之后 你可以添加另一个任务,即完成应该: grunt.registerTask('finish', ['sass:finish']);

要运行它,您可以在命令行上键入grunt finish