【问题标题】:Using Gulp to build csproj on .less change使用 Gulp 在 .less 更改上构建 csproj
【发布时间】:2017-01-31 15:26:31
【问题描述】:

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

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

我当前的任务很大程度上基于 Kamsar 的 Sitecore 栖息地回购中的一项任务: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 级等添加更多通配符。但是,我想看看gulp.src 中是否有办法“找到”第一个匹配文件,向上移动目录结构,然后一旦找到第一个匹配项就停止。有没有办法在 gulp 和/或普通 js 中做到这一点?

【问题讨论】:

    标签: javascript c# visual-studio gulp


    【解决方案1】:

    看看这个包:

    查找包含给定文件或目录的第一个父目录: https://www.npmjs.com/package/find-parent-dir

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-17
      • 1970-01-01
      • 2015-07-10
      • 2021-07-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      相关资源
      最近更新 更多