Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Gulp在较少更改的基础上构建csproj_Javascript_C#_Visual Studio_Gulp - Fatal编程技术网

Javascript 使用Gulp在较少更改的基础上构建csproj

Javascript 使用Gulp在较少更改的基础上构建csproj,javascript,c#,visual-studio,gulp,Javascript,C#,Visual Studio,Gulp,我目前正在尝试提出一个gulp任务,该任务将在.less文件发生更改时构建与特定.less文件关联的整个.csproj文件 我已经有一个工作任务可以完成这项工作,但是我面临的限制是.less文件必须位于相对于.csproj文件的特定位置。如果.less文件在目录中更深/更高一级,则我用于生成.csproj文件的方法将无法找到要生成的正确.csproj文件 我目前的任务主要基于Kamsar的Sitecore栖息地回购协议中的一项任务: 详情如下: gulp.task("Auto-Publish-L

我目前正在尝试提出一个gulp任务,该任务将在.less文件发生更改时构建与特定.less文件关联的整个.csproj文件

我已经有一个工作任务可以完成这项工作,但是我面临的限制是.less文件必须位于相对于.csproj文件的特定位置。如果.less文件在目录中更深/更高一级,则我用于生成.csproj文件的方法将无法找到要生成的正确.csproj文件

我目前的任务主要基于Kamsar的Sitecore栖息地回购协议中的一项任务:

详情如下:

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个级别等添加更多通配符。不过,我想看看是否有办法在
gulp.src
中“查找”第一个匹配的文件,向上移动目录结构,然后在找到第一个匹配后停止。有没有一种方法可以在吞咽和/或普通的旧js中实现这一点?

查看此软件包:

查找包含给定文件或目录的第一个父目录:

查看此软件包:

查找包含给定文件或目录的第一个父目录: