私は現在、.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で行う方法はありますか?