2016-11-14 4 views
0

私のデータベースを再構築するフォルダがあります。私は、「ファイル」配列(gruntを使用してフォルダ内のすべてのファイルに対してsqlcmdを実行するには

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); 
     });  
    } 
); 

を作ることにうなり声のガイドに従っしかし、私は「foreachの」ファイルに次のイサキのコマンドを変換するためにそれを使用する必要があります。

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

私はトラブル私がregisterMultiTaskを実行すると、rebuildObjects関数を呼び出すことができないので、Javascript関数を作成する必要があります。また、registerTaskを実行すると、Files配列にデータが移入されないようです。

これを変換します。このようなもの:

rebuildObjects { 
    this.files.forEach(function(file) { 
     file.forEach(function(arrayIndex) { 
      cmd: "sqlcmd " 
       + " -S .\\sqlexpress" 
       + " -d " + Database 
       + " -i file[arrayIndex] 
       + " -v DATABASE_NAME = " + Database 
     }) 
    }) 
} 

私はここで何が欠けていますか?

答えて

0

まあ、誰もがより良い答えを持っていない限り、私がやってしまったことは、私が先

への書き込みを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; 
       } 
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); 
     }); 

    } 
); 

私は、これをしませんでした

関連する問題