【问题标题】:Gulp-rev-all leaves old revision fileGulp-rev-all 留下旧的修订文件
【发布时间】:2015-12-07 20:03:03
【问题描述】:

我的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

我似乎无法用新文件替换旧文件。 任何人都可以帮助我或指出正确的方向来完成此任务吗?

【问题讨论】:

    标签: gulp gulp-rev


    【解决方案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(', '));
            }
        });
    });
    

    【讨论】:

    • 感谢您的评论。但我有个问题。你的意思是其他任务有这个任务作为依赖?例如,如果我有一个 cssjs 任务(两者相互分离)。或者您如何看待这项任务与其他人的合作?
    • 取决于您的设置。您可以简单地将它们添加为这些任务的依赖项,或者查看“运行序列”插件。我个人有一个“构建”任务,它首先运行清除任务,然后运行 ​​css、js 等。另一种选择是,您为每个 css 和 js 任务创建一个特殊任务,只为它们清除文件。例如 purge:css、purge:js
    猜你喜欢
    • 2016-03-22
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2021-10-05
    • 2019-01-17
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多