EJS用gulp获取JSON数据

时间:2017-05-25 01:28:01

标签: javascript json gulp ejs

我使用gulp将我的ejs模板编译成html文件,我很难找到如何告诉我json数据文件的位置。 当我尝试使用gulp-ejs时,如下所示

gulp.task('ejs', function() {
  return gulp.src('src/views/pages/index.ejs')
    .pipe(ejs(
      { media: 'src/js/data/data.json' },
      { ext:'.html' }))
    .on('error', gutil.log)
    .pipe(gulp.dest('build/'))
    .pipe(browserSync.reload({
      stream: true
    }))
});

它将我想要的路径作为文字字符串。是否有不同的方法在gulp之外执行此操作,或者在gulp中将json数据传递给它?

1 个答案:

答案 0 :(得分:0)

这是我的两个部分问题,经过一些试验和错误后我找到了解决方案。

首先我导入了我的json文件错误,但我最终没有将其导入gulp但是当我在我的javascript文件中导入它之后我就像下面那样:

const media = require('src/js/data/data.json').media; // media was the name of the object I needed from the json file

这使gulp-ejs的gulp任务看起来像这样

gulp.task('ejs', function() {
  return gulp.src('src/views/pages/index.ejs')
    .pipe(ejs(
      {},
      { ext:'.html' }))
    .on('error', gutil.log)
    .pipe(gulp.dest('build/'))
    .pipe(browserSync.reload({
      stream: true
    }))
});

如果有人使用gulp-ejs并遇到问题,您必须在 导入任何数据的地方留下一个空对象,即使您不是。< / p>