2014-04-01 49 views
1

我正在創建一個Yeoman生成器應用程序。我想創建一組父目錄,每個父目錄都有相同的子模板集。使用Yeoman批量mkdir

現在我正在反覆使用下面的命令來實現這一點。有沒有更好的方法來遍歷數組並實現相同?

this.mkdir('app/scss/modules/tables'); 
this.mkdir('app/scss/modules/navigation'); 
this.mkdir('app/scss/modules/pagination'); 

this.copy('_extends.scss', 'app/scss/modules/navigation/_extends.scss'); 
this.copy('_mixins.scss', 'app/scss/modules/navigation/_mixins.scss'); 
this.copy('_variables.scss', 'app/scss/modules/navigation/_variables.scss'); 

this.copy('_extends.scss', 'app/scss/modules/pagination/_extends.scss'); 
this.copy('_mixins.scss', 'app/scss/modules/pagination/_mixins.scss'); 
this.copy('_variables.scss', 'app/scss/modules/pagination/_variables.scss'); 

this.copy('_extends.scss', 'app/scss/modules/tables/_extends.scss'); 
this.copy('_mixins.scss', 'app/scss/modules/tables/_mixins.scss'); 
this.copy('_variables.scss', 'app/scss/modules/tables/_variables.scss'); 

回答

2

我想你會需要兩個數組,至少兩個循環。

僞代碼:

dirs = [ ... directories ... ]; 
files = [ ... files ... ]; 

for (directory in dirs) { 
    mkdir (d); 

    for (file in files) { 
     copy(file, directory + file); 
    } 

} 

如果你需要的所有文件的另一個目錄或其他文件中的所有目錄去你只需將其添加到相應的陣列。

希望你覺得這個有用!

+1

是的,這是如何解決的。謝謝。 –

+1

當然,沒問題! –

0

你也可以做這樣的事情:

dirs = [ "folder1", "folder2", "etc" ]; 
files = [ "file1", "file2", "etc" ]; 

dirs.forEach(function(directory){ 
    this.mkdir(directory); 

    files.forEach(function(file){ 
     this.copy(file, directory + file); 
    }.bind(this)); 

}.bind(this)); 

...如果你想避免使用「換在」環,因爲他們是有點容易出錯。