gpt4 book ai didi

css - 使用 gulp-rev、gulp-rev-replace、gulp-rev-css-url 进行 Gulp 修订

转载 作者:行者123 更新时间:2023-11-28 10:39:29 28 4
gpt4 key购买 nike

我正在尝试使用 gulp-rev、gulp-rev-replace 和 gulp-rev-css-url 重写对我的版本图像文件的引用。

我已设法修改文件并将 list 与以下 gulp 代码合并:

gulp.task('revision', function(callback){
runSequence('revision-images', 'revision-scripts', 'revision-css', 'revreplace', callback);
});

gulp.task('revision-scripts', function(){
return gulp
.src('./build/*.js')
.pipe(rev())
.pipe(gulp.dest('./dist/build'))
.pipe(rev.manifest({
base: process.cwd(),
merge: true
}))
.pipe(gulp.dest('./dist'));
});

gulp.task('revision-css', function(){
return gulp
.src('./build/*.css')
.pipe(rev())
.pipe(override())
.pipe(gulp.dest('./dist/build'))
.pipe(rev.manifest({
base: process.cwd(),
merge: true
}))
.pipe(gulp.dest('./dist'));
});

gulp.task('revision-images', function(){
return gulp
.src(['./static-assets/img/*.*'])
.pipe(rev())
.pipe(gulp.dest('./dist/static-assets/img'))
.pipe(rev.manifest({
base: process.cwd(),
merge: true
}))
.pipe(gulp.dest('./dist'));
});

gulp.task("revreplace", function(){

var manifest = gulp.src('./dist/rev-manifest.json');

return gulp.src('./index.html')
.pipe(revReplace({
manifest: manifest
}))
.pipe(gulp.dest('./dist'));
});

这会在正确的位置生成一个合并的 list 文件,并且还会正确地对静态 Assets 进行版本控制。

问题在于它不会在版本化 CSS 中重写对版本化图像的引用。

运行 'revision-css' 时,我确实看到了对另一个 CSS 导入的更新引用,但图像引用仍然是未版本化文件的引用。

我使用 run-sequence 包来强制首先进行版本控制和 list 合并,以便替换将最后执行,但我不确定运行顺序是问题所在。

我的图片在 CSS 中通常是这样引用的:

background: url("../static-assets/img/nav-logo.png") no-repeat;

最佳答案

我改用 gulp-rev-all:

https://github.com/smysnk/gulp-rev-all

哪个有效:)

关于css - 使用 gulp-rev、gulp-rev-replace、gulp-rev-css-url 进行 Gulp 修订,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34308238/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com