0

我开始使用 Gulp,我想创建一个任务,用哈希重命名文件(js,css),然后将它们注入到 html 中。

我实际上有两个函数可以做我想做的事,但我不知道如何删除旧文件并只保留新的 js 和 css 散列文件。

有人可以给我一个提示吗?这是我现在的代码:

obs: 'config' 变量具有文件夹位置

gulp.task('prod:rev',['prod:revision'],function() { 
  var manifest = gulp.src(config.prod.manifest);
  return gulp
    .src(config.prod.header)
    .pipe(plugin.revReplace({manifest: manifest}))
    .pipe(gulp.dest('../'));
});

gulp.task('prod:revision',function(){
  var revJs = gulp
   .src(config.scripts.build+'*.js')
   .pipe(plugin.rev())
   .pipe(gulp.dest(config.scripts.build))
   .pipe(plugin.rev.manifest({merge: true}))
   .pipe(gulp.dest(config.prod.path));

  var revCss = gulp
   .src(config.styles.build+'*.css')
   .pipe(plugin.rev())
   .pipe(gulp.dest(config.styles.build))
   .pipe(plugin.rev.manifest({merge: true}))
   .pipe(gulp.dest(config.prod.path));

  return merge(revJs,revCss);
4

3 回答 3

0

在调用 .pipe(rev()) 之后尝试放置这个

const revDelete = require('gulp-rev-delete-original');

... .pipe(revDelete()) ...

这将删除“未散列”文件。

于 2018-09-28T10:48:01.467 回答
0

根据gulp-rev readme.md听起来您可能还想使用gulp-rev-delete-original删除未散列的原件。

于 2017-07-26T19:12:08.730 回答
0

我目前对类似问题有一个悬而未决的问题- 我得到了正确的文件,但未能使用 gulp-useref 将它们注入到 html 中(您可以在我关于 useref 的问题中检查应该工作的方法)。我怀疑我使用的目录有些犯规,但现在我选择使用不同的缓存清除方案:

var cb = Math.random();

....
.pipe($.replace('dist/css/lib.css', 'dist/css/lib.css?cb=' + cb))
....

它可能不是你想要的答案,但它可能是你需要的答案。:)

于 2015-09-20T10:58:54.500 回答