1

json ファイルからデータを取得し、それを html として処理する gulp タスクを作成しました。ビルドを最初に実行したとき、これは魅力のように機能しますが、これも行うように監視タスクを設定しました.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

何か案は?

4

1 に答える 1

2

しばらく時間がかかりましたが、私はそれに対する修正を見つけました。コメントアウトされた行をその下の行に置き換えただけです。

 .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の先頭にも追加する必要がありました。これはノードパッケージであるため、追加の依存関係は必要ありませんでした。

于 2016-02-25T09:44:18.500 に答える