不能使用带有gulp的vinylPaths del

时间:2016-04-08 12:10:41

标签: javascript gulp

我有以下gulp任务,基本上它的作用是:

  • 编译所有.styl文件
  • 将结果放入theme/app文件夹
  • 缩小theme/app文件夹
  • 中的所有文件
  • 将文件夹theme/app文件夹中的所有文件连接到单个文件
  • 将一些许可信息添加到文件
  • 将结果保存在文件夹theme
  • 删除theme/app文件夹
  • 中的所有文件

我无法完成最后一步的工作,我需要删除theme/app中的所有文件。 我没有具体的错误,我的脚本中可能出现什么问题以及如何解决它?

   gulp.task('_release-theme:compile', function () {
        gulp.src([
            'app/**/*.styl',
            '!app/**/**mixins**.styl',
            '!app/**/**variables**.styl',
        ])
        .pipe(stylus({
            compress: false,
            use: nib()
        }))
        .pipe(gulp.dest('theme/app'))
        .pipe(cleanCSS())
        .pipe(concat('theme.css'))
        .pipe(header(fs.readFileSync('licenses/app.txt', 'utf8')))
        .pipe(gulp.dest('theme/'))
        .pipe(vinylPaths(del['theme/app/**/*'])); // problem here
    });

1 个答案:

答案 0 :(得分:2)

del是一个功能。您的对象属性访问del['theme/app/**/*']在这里没有任何意义。

而是在流中监听end事件,然后使用rimraf删除文件:

var rimraf = require('rimraf');

gulp.task('_release-theme:compile', function (done) {
    gulp.src([
        'app/**/*.styl',
        '!app/**/**mixins**.styl',
        '!app/**/**variables**.styl',
    ])
    .pipe(stylus({
        compress: false,
        use: nib()
    }))
    .pipe(gulp.dest('theme/app'))
    .pipe(cleanCSS())
    .pipe(concat('theme.css'))
    .pipe(header(fs.readFileSync('licenses/app.txt', 'utf8')))
    .pipe(gulp.dest('theme/'))
    .on('end', function() {
      rimraf('theme/app/**/*', done);
    });
});