2017-01-31 20 views
1

私は現在、.lessファイルが変更されると、特定の.lessファイルに関連付けられた.csprojファイル全体を構築するgulpタスクを作り出すことを試みています。Gulpを使用して.less変更でcsprojを構築する

私はまだその作業を行っていますが、私が直面している制約は.csprojファイルに対してという特定の場所にある必要があります。 .lessファイルがディレクトリの1つ上のレベルにある場合、.csprojファイルをビルドするために使用している方法では、正しい.csprojファイルを見つけることができません。

私の現在のタスクが重くサイトコアのためのKamsarの生息地のレポで見つかった課題の一つのオフに基づいています:https://github.com/kamsar/Habitat

次のようにそれがある:

gulp.task("Auto-Publish-Less", 
function() { 
    var root = "./src"; 
    var roots = [root + "/**/resources/styles", "!" + root + "/**/obj/**/resources/styles"]; 
    var files = "/**/*.less"; 
    gulp.src(roots, { base: root }) 
     .pipe(
      foreach(function (stream, rootFolder) { 
       console.log(rootFolder); 
       gulp.watch(rootFolder.path + files, 
        function(event) { 
         if (event.type === "changed") { 
          var dest = config.websiteRoot; 
          console.log("Build project associated with this file: " + event.path); 
          return gulp.src([event.path + "/../../../*.csproj"]).pipe(publishStream(stream,dest)); 
         } 
        }); 
       return stream; 
      })); 
}); 

これは長い間.csprojとして素晴らしい作品ファイルは.lessファイルよりも3レベル高いです。私はまた、2つ以上のレベル、1つ上のレベルなどのためのより多くのワイルドカードを追加することができました。しかし、最初の一致するファイルを "見つける"方法があるかどうかを調べていました。ディレクトリ構造を上に移動し、最初の一致が見つかります。これを麻薬および/または普通のjsで行う方法はありますか?

答えて

関連する問題