VS 2015使用Gulp编译更少的代码

VS 2015使用Gulp编译更少的代码,gulp,Gulp,我正在尝试建立一个类似于旧VisualStudio中最新的Web Essentials提供的过程。对于那些不熟悉其工作原理的人,流程是: File Setup: a.less a.css a.min.css a.css.map b.less b.css b.min.css b.css.map 因此,基本上,当您打开a.less并开始编辑它时,它会自

我正在尝试建立一个类似于旧VisualStudio中最新的Web Essentials提供的过程。对于那些不熟悉其工作原理的人,流程是:

File Setup:
    a.less
        a.css
            a.min.css
            a.css.map

     b.less
        b.css
            b.min.css
            b.css.map
因此,基本上,当您打开a.less并开始编辑它时,它会自动签出a.css、a.min.css和a.css.map。然后,当您保存时,它将重新编译3个子文件以及保存较少的文件

我可以通过为每个文件编写单独的任务来复制这一点,如下所示:

gulp.task('checkout', function () {
    return gulp.src('Styles/brands.css')
        .pipe(tfs());
});


gulp.task('less', ['checkout'], function () {
    del('Styles/brands.css');

    return gulp.src('Styles/brands.less')
        .pipe(less())
        .pipe(gulp.dest('Styles'));
});
这将使用gulp-tfs签出来签出子文件,然后使用less来编译。这是我所期望的100%的效果。我可以设置一个手表来观看较少的任务,一切都会很好。唯一的问题是,我如何扩展它来处理该文件夹中的所有文件?我可以为每个文件编写单独的签出和编译任务,但这并不理想

我习惯于编写这样的项目:保存更少的文件会将所有文件编译成一个或多个文件,但这是一个工作项目,出于多种原因,我需要保持css文件现在的状态。我们使用visualstudio的绑定,但它是一个较老的项目,人们在绑定过程之外随机引用css文件,因此改变这一点将是一项相当大/危险的任务

我不知道如何查看许多文件,但只有在有意义的情况下才更改当前文件

gulp.task('less', function () {
    return gulp.src('Styles/*.less') //watch all of my files
        .pipe(tfs())//checkout only the css file for the less file that was changed here somehow
        .pipe(less()) //compile only the css file that was changed
        .pipe(gulp.dest('Styles'));
});

我已经习惯了咕哝和吞咽,但就像我说的,我通常在我的项目中大量地做事情。如果我想查看所有文件,但只更改1,我不知道如何执行此操作。为什么不为每个文件动态创建所有这些任务?您可以使用fs.readdirSync读取less文件所在文件夹的内容,如果该文件是为每个任务创建的less文件,则可以使用“签出”+文件名,然后使用“less”+文件名

动态创建新的less文件或删除less文件时,您不会遇到任何问题。

我也希望这样做。为了节省我的时间,你有没有可能和我分享你完整的吞咽文件?谢谢正如Michael所说,如果能看到一个解决方案的例子,那就太好了。我们的吞咽任务随着时间的推移而发展,所以我们没有类似的东西。但我试着给你们一个例子,说明如何在这里完成(代码不可编译):凯文,如果可能的话,你们能分享一个工作代码吗?@LiviuCostea你们能给出你们的gulp文件的解决方案,只在TFS文件被修改时签出它们吗?不是所有文件都是gulp.task('build-less',()=>{return gulp.src('Content/***/.less')).pipe(less()).pipe(gulp.dest('build/Content');});在src文件夹styles.less中修改文件时,如何仅签出生成文件夹styles.css中修改的文件