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

How to structure a Grunt task for develop and release

我似乎真的无法弄清楚如何为特定任务构建配置。目前我正在尝试为 cssmin.

执行此操作

此配置片段工作正常:

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

我是这样的 运行:

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

但我想为此创建一个 developrelease 配置。所以我尝试了以下配置样式,他们都说 Done, without errors.,但是 none 的配置创建了一个文件。

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 类型配置的方式吗?我在这里做错了什么?

当您调用 cssmin:dev 时,dev 是您的目标。无需再次指定 target 属性 w/in。试试这个:

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']);