我正在尝试将lastmod函数与cheerio(或gulp-cheerio)结合使用,从流中的每个文件中提取元标记中的值,以填充此lastmod条目。
var gulp = require('gulp');
var cheerio = require('cheerio');
var sitemap = require('gulp-sitemap');
gulp.task('sitemap', function() {
return gulp.src(['/prod/**/*.html',])
.pipe(sitemap({
siteUrl: 'https://www.somewhere.com',
lastmod: function(file) {
var $ = cheerio.load(body);
var lastmodValue = $('head > meta[name="dc.date"]').attr('content');
return lastmodValue.toString().trim();
}
}))
.pipe(gulp.dest('/prod'));
});
如果我在返回之前硬编码var并注释掉cheerio语句,这样可以正常工作。 Gulp-sitemap lastmod说明:https://github.com/pgilad/gulp-sitemap#lastmod
答案 0 :(得分:1)
找到我的问题 - 以下是有效的代码:
.pipe(sitemap({
siteUrl: 'https://www.somewhere.com',
lastmod: function(file) {
var $ = cheerio.load(file.contents);
var lastmodValue = $('head > meta[name="dc.date"]').attr('content');
return lastmodValue.toString().trim();
}
}))