使用lastmod作为gulp-sitemap中的函数与cheerio

时间:2018-02-22 14:54:30

标签: gulp sitemap cheerio

我正在尝试将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

1 个答案:

答案 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();
      }
    }))