如何减少 gruntfile 中的重复

How to reduce repetition in gruntfile

我的 grunt 文件如下所示:

grunt.initConfig({

    compress: {

        foo: {
            options: { archive: 'deploy/foo.zip', mode: 'zip' },
            files: [{ expand: true, cwd: 'release/foo/', src: ['**'], dot: true }]
        },
        bar: {
            options: { archive: 'deploy/bar.zip', mode: 'zip' },
            files: [{ expand: true, cwd: 'release/bar/', src: ['**'], dot: true }]
        },
        baz: {
            options: { archive: 'deploy/baz.zip', mode: 'zip' },
            files: [{ expand: true, cwd: 'release/baz/', src: ['**'], dot: true }]
        },...

我如何参数化它,所以我不需要 N 定义,我可以调用(伪代码)

> grunt compress "foo"

如果我正确理解你的问题:

var initData = {
    compress: { }
};

var compress = function(n){
    initData.compress[n] = {
        options: {archive: 'deploy/' + n + '.zip', mode: 'zip'},
        files: [{expand: true, cwd: 'release/' + n + '/', src: ['**'], dot: true}]
    };
}

compress('foo');
compress('bar');
compress('baz');

grunt.initConfig(initData);