Gulp -nunjucks-html + gulp -data не компилируется на часах

Я написал задачу gulp, чтобы взять данные из json файлов и обработать их как html. Когда я впервые запускаю сборку, это работает как шарм, однако я также создал задачу просмотра, чтобы сделать это, и хотя он будет перестраивать файл nunjucks в html, он, кажется, игнорирует json до следующей полной сборки (хотя все часы выполняют ту же задачу)

вот моя задача:

// Process nunjucks html files (.nunjucks)
gulp.task('nunjucks', function() { 'use strict'; return gulp.src('src/html/pages/**/*.nunjucks') .pipe(plumber( { errorHandler: onError } )) .pipe(data(function(file) { return require('./src/model/' + path.basename(file.path) + '.json'); })) .pipe(data(function() { return require('./src/model/globals.json'); })) .pipe(nunjucks({ searchPaths: ['src/html/templates'] })) .pipe(extReplace('.html')) .pipe(gulp.dest('dist')) .pipe(reload({stream:true}))
});

и вот мой весь файл gulpfile, если проблема лежит в другом месте, и я просто не заметил его: http://pastebin.com/q9vc8h6i

Любые идеи?

1 ответ

Потребовалось некоторое время, но я нашел исправление. Я только что заменил пропущенную строку строкой ниже:

.pipe(data(function(file) { //return require('./src/model/' + path.basename(file.path) + '.json'); return JSON.parse(fs.readFileSync('./src/model/' + path.basename(file.path, '.nunjucks') + '.json')); }))

Изменить: мне также пришлось добавить var fs = require('fs') в начало gulpfile, это пакет node, поэтому никаких дополнительных зависимостей не было.

licensed under cc by-sa 3.0 with attribution.