Gulp-rev-all留下旧的修订文件

时间:2015-11-13 13:02:45

标签: gulp gulp-rev

我的gulp-rev-all任务出了问题。每次我更改代码时,它都会生成一个新的修订文件,但保留旧文件。

这是我的gulp任务:

var gulp         = require('gulp');
var RevAll       = require('gulp-rev-all');

gulp.task('js', function() {

    var revAll = new RevAll();

    return gulp.src(opt.Src + 'scripts.js')
        // Add a hash to the file
        .pipe(revAll.revision())
        // Save the hashed css file
        .pipe(gulp.dest(path.js))
        // Write the manifest file
        .pipe(revAll.manifestFile())
        .pipe(gulp.dest(path.js + 'rev'));
});

所以,这就像一个魅力。 它会给我一个带有rev(例如:scripts.0ad8ecf1.js)和manifest.json文件的文件。 挑战是,每当我更改代码时,它都会生成一个带有不同哈希值的新scripts.js文件,而不会覆盖或删除旧文件。所以,我的文件夹现在看起来像这样:

scripts.0ad8ecf1.js
scripts.7e3fa506.js
scripts.056ddda0.js

我似乎无法替换旧文件的旧文件。 任何人都可以帮助我或指出我正确的方向来实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

您需要使用其他插件删除您的文件,因为gulp-rev-all不会为您执行此操作。

例如,您可以使用'del'包(https://www.npmjs.com/package/del

然后创建一个“删除任务”,如下所示:

var del = require('del');

/**
* Deletes all files inside the /foo/scripts/ folder
*/
gulp.task('purge:foo', function() {

    return del.sync(['foo/scripts/**'], function (err, deletedFiles) {
        if (err) {
            console.log(err);
        }
        if (deletedFiles) {
            console.log('Elements deleted:', deletedFiles.join(', '));
        }
    });
});