如何构建用于开发和发布的Grunt任务

时间:2015-05-08 21:59:03

标签: gruntjs grunt-contrib-cssmin

我似乎无法弄清楚如何为某个任务构建配置。目前我正尝试为cssmin执行此操作。

此配置代码段工作正常:

cssmin: {
    options: {
        shorthandCompacting: false,
        roundingPrecision: -1
    },
    target: {
        files: {
            'wwwroot/all.css': ['bower_components/animate/animate.css']
        }
    }
},

我这样运行:

grunt.registerTask('Test', ['cssmin']);

但我想为此创建一个 develop release 配置。所以我尝试了以下配置样式,所有这些都说Done, without errors.,但没有一个配置创建了一个文件。

cssmin: {
    options: {
        shorthandCompacting: false,
        roundingPrecision: -1
    },
    dev: {
        target: {
            files: {
                'wwwroot/all.css': ['bower_components/animate/animate.css']
            }
        }
    }
}
grunt.registerTask('Test', ['cssmin:dev']);

就像这样:

cssmin: {
    dev: {
        options: {
            shorthandCompacting: false,
            roundingPrecision: -1
        },
        target: {
            files: {
                'wwwroot/all.css': ['bower_components/animate/animate.css']
            }
        }
    }
}
grunt.registerTask('Test', ['cssmin:dev']);

但那些配置似乎不起作用。他们保存Done, without errors.,但它没有像第一个配置示例那样创建CSS文件。

那么您应该创建不同的dev / release类型的配置吗?我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

当您致电cssmin:dev时,dev是您的目标。没有必要再次指定其中的target适当性。试试这个:

cssmin: {
    dev: {
        options: {
            shorthandCompacting: false,
            roundingPrecision: -1
        },
        files: {
            'wwwroot/all.css': ['bower_components/animate/animate.css']
        }
    },
    build : {
        options: {
            shorthandCompacting: true,
            roundingPrecision: -1
        },
        files: {
            'wwwroot/all.min.css': ['bower_components/animate/animate.css']
        }
    }
}
grunt.registerTask('Test', ['cssmin:dev']);