gpt4 book ai didi

gulp - 如何使用 gulp-rev 使 gulp-newer 工作?

转载 作者:行者123 更新时间:2023-12-01 03:39:53 25 4
gpt4 key购买 nike

设置很简单:

gulp.task('rev-js',  function() {
return gulp.src('/js/main.js, {base: '.'})
.pipe(newer('_build'))
.pipe(rev())
.pipe(gulp.dest('_build'))
.pipe(rev.manifest())
.pipe(gulp.dest('_build/rev/js'));
});

gulp-newer 显然在这里不起作用,因为目标文件的名称不同。在这种情况下,有什么解决方法可以使 gulp-newer(或 gulp-changed)工作?

最佳答案

在大口更新 options我读过的文档支持传入配置对象而不是目标。在该配置对象中,您可以指定从旧文件到新文件的映射函数。所以代替

newer('_build')

你可以写
newer({dest: '_build', map: mappingFn})

映射函数获取文件的相对名称并期望它返回一个翻译后的名称 - 参见 index.js文件。您可以定义一个使用之前生成的 rev-manifest.json 的函数。 manifest 来查找正确的文件名。 Id 在您的构建脚本中放置了一些内容(未测试):
gulp.task('rev-js',  function() {

// get the existing manifest
// todo: add logic to skip this if file doesn't exist
var currentManifest = JSON.parse(fs.readFileSync('rev-manifest.json', 'utf8'));

// mapping function for gulp-newer
function mapToRevisions(relativeName) {
return currentManifest[relativeName]
}

return gulp.src('/js/main.js, {base: '.'})
.pipe(newer({dest: '_build', map: mapToRevisions}))
.pipe(rev())
.pipe(gulp.dest('_build'))
.pipe(rev.manifest())
.pipe(gulp.dest('_build/rev/js'));
});

关于gulp - 如何使用 gulp-rev 使 gulp-newer 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31638330/

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