Javascript ';狼吞虎咽的手表';事件所需的编译时间是正常编译时间的两倍;少吞咽';命令

Javascript ';狼吞虎咽的手表';事件所需的编译时间是正常编译时间的两倍;少吞咽';命令,javascript,performance,gulp,gulp-watch,gulp-less,Javascript,Performance,Gulp,Gulp Watch,Gulp Less,我的Gulp'watch'less函数有问题,因为编译less文件的时间比单个less函数长2倍 当我使用“少吞咽”时,平均需要9/10秒 [12:57:15] Starting 'less'... [12:57:25] Finished 'less' after 9.96 s 但是,当我使用“gulp watch less”时,然后更改一个文件以触发watch功能,它所花费的时间大约是“gulp less”的两倍 [13:03:43] Starting 'watch-less'... [13

我的Gulp'watch'less函数有问题,因为编译less文件的时间比单个less函数长2倍

当我使用“少吞咽”时,平均需要9/10秒

[12:57:15] Starting 'less'...
[12:57:25] Finished 'less' after 9.96 s
但是,当我使用“gulp watch less”时,然后更改一个文件以触发watch功能,它所花费的时间大约是“gulp less”的两倍

[13:03:43] Starting 'watch-less'...
[13:03:45] Finished 'watch-less' after 1.31 s
[13:03:48] Starting 'less'...
[13:04:06] Finished 'less' after 18 s
下面是我的gulpfile.js,它引入了“path.json”,因为我有5个不同的主题(这个问题的名称有所改变),所以使用的较少的文件需要输出到相关的文件夹中,这就是为什么我使用函数“updateDestFolder”

导入less的方式是,基础主题中的更改应该更新主题2-5

/*jslint node: true */
'use strict';

// Require the various plugins
var gulp     = require('gulp');
var watch    = require('gulp-watch');
var less     = require('gulp-less');
var plumber = require('gulp-plumber');

// Pull in External Paths JSON
var paths = require('./Config/paths.json');

// Determine output path depending on source path
function updateDestFolder(path) {
    var folder = '';

    if (path.indexOf(paths.themes.baseTheme) > -1) {
        folder = paths.themeDest.baseTheme;
    }
    else if (path.indexOf(paths.themes.theme2) > -1) {
        folder = paths.themeDest.theme2;
    }
    else if (path.indexOf(paths.themes.theme3) > -1) {
        folder = paths.themeDest.theme3;
    }
    else if (path.indexOf(paths.themes.theme4) > -1) {
        folder = paths.themeDest.theme4;
    }
    else if (path.indexOf(paths.themes.theme5) > -1) {
        folder = paths.themeDest.theme5;
    }

    return folder;
}

// Compile LESS
gulp.task('less', function() {
    var completeLessPaths = paths.less.src.concat(paths.less.ignore); // Merges both arrays
    var destFolder;

    return gulp.src(completeLessPaths)
        .pipe(plumber()) // Handle any errors with the plugins
        .pipe(less({
            strictUnits: true,
            compress: true // Minify the style
        }))
        .pipe(gulp.dest(function (file) {
            destFolder = updateDestFolder(file.path);
            return destFolder + 'Styles/';
        }));
});

// Default tasks to run when 'gulp' is ran via command line
gulp.task('default', ['less', 'js', 'image']);

// Watch for changes to less source files, then fire the relevant function
gulp.task('watch-less', function () {
    gulp.watch(paths.less.src, ['less']);
});
path.json:

{
  "less" : {
    "src" : [
      "../Orchard.Web/Themes/Theme1Base/Styles/**/*.less",
      "../Orchard.Web/Themes/Theme2/Styles/**/*.less",
      "../Orchard.Web/Themes/Theme3/Styles/**/*.less",
      "../Orchard.Web/Themes/Theme4/Styles/**/*.less",
      "../Orchard.Web/Themes/Theme5/Styles/**/*.less"
    ],
    "ignore" : [
      "!../**/*.css",
      "!../**/bootstrap-overrides.less",
      "!../**/font-awesome.less",
      "!../**/Imports/**/*.less",
      "!../**/typography*.less",
      "!../**/*variables*.less"
    ]
  },
  "themes" : {
    "baseTheme": "Theme1Base",
    "theme2": "Theme2",
    "theme3": "Theme3",
    "theme4": "Theme4",
    "theme5": "Theme5",
  },
  "themeDest" : {
    "baseTheme" : "../Orchard.Web/Themes/Theme1Base/",
    "theme2" : "../Orchard.Web/Themes/Theme2/",
    "theme3" : "../Orchard.Web/Themes/Theme3/",
    "theme4": "../Orchard.Web/Themes/Theme4/",
    "theme5" : "../Orchard.Web/Themes/Theme5/",
  }
}
如果有人能在不需要使用该功能的情况下对确定dest文件夹提出任何改进建议,我也将不胜感激


谢谢

我不知道为什么要花更多的时间,但下面是如何更好地确定dest文件夹:

gulp.dst(function(file) { return file.split("/Styles")[0] + "/Styles/"; });