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.