LoginSignup
7

More than 5 years have passed since last update.

gulp-ejsで<%= filename %>が使えない問題の回避策としてgulp-dataを使う

Posted at

以前のバージョンでは <%= finename %> でEJSファイルのパスが取得できたんですが、
いつのまにか(gulp-ejs v3から?)これが取得できなくなって困っていました。

EJSでルートへのパス(相対、絶対)を取得して変数化する

EJSをコンパイルする前に、gulp-data を挟んだら回避できました。

gulpfile.js
let gulp = require('gulp');
let $ = require('gulp-load-plugins')();

gulp.task("ejs", callback => {
  return gulp.src([
    "ejs/**/*.ejs",
    '!' + "ejs/**/_*.ejs"
  ])
  .pipe($.plumber())
  .pipe($.data(file => {
    return {
      'filename': file.path
    }
  }))
  .pipe(
    $.ejs()
    .on('error', $.util.log)
  )
  .pipe($.rename({
    extname: '.html'
  }))
  .pipe(gulp.dest( yourDestDir ));
});

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7