如何使用grunt在文件夹中的所有文件上运行sqlcmd

时间:2016-11-14 17:22:49

标签: javascript node.js gruntjs

我有一个文件夹来重建我的数据库,我需要帮助来运行这些文件。我按照Grunt的指南制作了一个"文件"数组(

UIImageView

但我需要使用它将以下grunt命令转换为" foreach"文件:

grunt.initConfig({
    logfiles: {
        filesObject: {
            files: {
                'dist/file1.js': ['app/src*.js']
            }
        },
        filesArray: {
            files: [{
                src: ['app/src*.js'],
                dest: 'dist/file1.js'
            }]
        }
    }
});
grunt.registerMultiTask(
    'logfiles', 
    'Log the source-destination mappings in a Grunt multitask', 
    function() {
        this.files.forEach(function(file) {
            grunt.log.writeln('File ' + file.dest + ' has the sources ' + file.src);
        });    
    }
);

我遇到的麻烦就是当我注册MultiTask时我似乎无法调用rebuildObjects函数,我必须创建一个Javascript函数,当我注册TaskTask时,我似乎无法填充Files数组

我想把它转换成这样的东西:

 rebuildObjects: {
            cmd: "sqlcmd "
                + " -S .\\sqlexpress"
                + " -d " + Database
                + " -i file
                + " -v DATABASE_NAME = " + Database

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

好吧,除非有人有更好的答案,我最后做的是创建一个子任务“logfiles”,我使用grunt.file.write(file.dest,file.src)写入目标

    grunt.registerMultiTask(
    'logfiles',
    'Log the source-destination mappings in a Grunt multitask',
    function () {
        this.files.forEach(function(file) {
            grunt.file.write(file.dest, file.src);
        });

    }
);
然后我做了这个:

            cmd:
                function() {

                    var cmdString = "sqlcmd "
                        + " -S .\\sqlexpress"
                        + " -d " + Database;

                    //Create SqlObjects
                    var array = grunt.file.read("gruntLog/sqlObjects.js").split(",");
                    if (array.length > 0 && array[0] !== "") {
                        array.forEach(function(file) {
                            if (file != undefined)
                                cmdString += " -i  " + file + "";
                        });
                    };
                    cmdString += " -v DATABASE_NAME = " + Database
                    return cmdString;
                }