在gulp流中覆盖文件

时间:2015-04-06 11:11:00

标签: gulp

我有以下目录结构:

common
-services
--service1.js
--service2.js
-app
--gulpfile.js
--src
---services
----service1.js
----service3.js

我想制作gulp任务,它将从公共目录中获取所有文件,从app目录中获取文件并替换原始流中具有相同文件名的所有文件。之后,我将连接并写入其他目录。 我试过这个:

var gulp = require('gulp'),
    merge = require('gulp-merge'),
    concat = require('gulp-concat');
 gulp.task('templates', function () {
  return merge(
    gulp.src(['../common/**/*.js']),
    gulp.src(['src/**/*.js'])
  )
    .pipe(concat('app.js'))
    .pipe(gulp.dest('build/js'));
});

我希望在dest / app.js中获得common / services / service2.js,app / src / services / service1.js,app / src / services / service3.js的内容。 但相反,我有所有文件的内容。 我试图改变gulp.src的cwd或base,但它没有效果。 我知道我可以将这个流写入tmp目录,然后从中获取文件,但它似乎并不像gulp风格的解决方案。那么如何在流中覆盖具有相同文件名的文件?

1 个答案:

答案 0 :(得分:4)

好的,我找不到任何现有的解决方案,所以我写了自己的gulp插件:gulp-unique-files