Gulp:将输出文件写入srcpath的子文件夹相对位置

我试图找出如何编写一个使用PostCSS的Gulp任务,以便它在原始path的postcss子文件夹中输出结果文件。

想象一下你有这些文件:

 /app/styles/index.css /app/elements/pages/home.css /app/elements/pages/profile.css 

你想要Gulp输出postCSS过程:

 /app/styles/postcss/index.css /app/elements/pages/postcss/home.css /app/elements/pages/potcss/profile.css 

这是我目前的configuration,但不起作用:

 gulp.task('css', function () { return gulp.src([ 'app/styles/index.css', 'app/elements/**/*.css' ], {base: './'}) .pipe(gulp.postcss([require('cssnext')()])) .pipe(gulp.dest('postcss')) }); 

事实上,通过configuration文件,Gulp会将所有文件及其相关子目录输出到项目根目录下的一个postcss文件夹中。

任何想法如何解决它? 谢谢!!

我find了一个可行的解决scheme,使用gulp-rename 。 这是更新的任务configuration:

 gulp.task('css', function () { return gulp.src([ 'app/styles/index.css', 'app/elements/**/*.css' ], {base: './'}) .pipe($.postcss([require('cssnext')()])) .pipe($.rename(function (path) { path.dirname += "/postcss"; })) .pipe(gulp.dest('./')) }); 

这完美的作品。 如果有人知道如何使用additinal external plugins,只需通过Gulp基本API,就可以发布。 谢谢! 干杯