gulp.dest与当前文件相同?

时间:2016-01-12 11:03:02

标签: css sass gulp gulp-sass

我试图将已编译的.css文件传输到与其原始.scss文件相同的目录

gulp.task('sass', function() {
  return gulp.src([
    appDir + '/*.scss',
    appDir + '/**/*.scss'
  ])
  .pipe(sass())
  .pipe(gulp.dest(..));
});

我无法弄清楚如何将gulp.dest设置为与原始.scss文件相同,因此我将此文件和.css文件放在同一个文件夹中。

2 个答案:

答案 0 :(得分:1)

不,您可以将目的地设置为您想要的任何地方。

例如,您可以为每个版本提供不同的目标,Staging,UAT,Prod

查看gulp-dest文档中的示例,如果您将任务与gulp-yargs结合使用,则可以设置不同的属性来处理目标,版本......

示例:

gulp.task('scss', function () {
    var appDir = './public/css';
    return gulp.src([
        appDir + '/*.scss',
        appDir + '/**/*.scss'
    ])
    .pipe(sass())
    .pipe(gulp.dest('./build/css/'));
});

答案 1 :(得分:1)

您可以使用自定义功能并为每个文件设置自己的路径。

var path = require('path');

gulp
    .src('path/to/files')
    .pipe(YourOperation({...}))
    .pipe(gulp.dest(function(file) {
        return path.dirname(file.path); // <- is here
    }))
;