gulp:「gulp-ejs」Ver 4.0.0でファイル出力時の拡張子を変更する方法

gulp:「gulp-ejs」Ver 4.0.0でファイル出力時の拡張子を変更する方法

開発時にgulpを用いていたプロジェクトで各種パッケージのアップデートだけして使おうとしたところ、ejsの拡張子が変換されずにそのまま出力されてしまったので、それを任意の拡張子で出力させる備忘録です。

単純にgulp.src()で指定されたファイルを任意の拡張子に変更しつつgulp.dest()へ出力したい場合、「gulp-ejs」のVer 3系であれば下記のように引数のextで指定する形で実装できました。

gulpfile.js

const gulp = require('gulp'),
      ejs = require('gulp-ejs');

gulp.task('ejs', () => {
  return gulp.src(paths.src)
    .pipe(ejs({}, {}, {ext: '.html'}))
    .pipe(gulp.dest(paths.dest));
});

※この場合は拡張子がhtmlに変更されます。

ただ、Ver 4系ではこの拡張子を指定していたsettingsが削除されたために上記のようなタスクを実行しても拡張子がejsのまま出力されるようになっており、任意の拡張子で出力させたいときは「gulp-rename」の併用が必要になったようです。

$ npm i -D gulp-rename

「gulp-rename」をインストール後、先ほどのタスクを下記のように変更することで「gulp-ejs」のVer 4系でも任意の拡張子で出力されるのを確認できます。

gulpfile.js

const gulp = require('gulp'),
      ejs = require('gulp-ejs'),
      rename = require('gulp-rename');

gulp.task('ejs', () => {
  return gulp.src(paths.src)
    .pipe(ejs())
    .pipe(rename({ extname: '.html' }))
    .pipe(gulp.dest(paths.dest));
});

Close the search window,
please press close button or esc key.