\

gulp ejs で The following tasks did not complete: ejs が出たときの対処法

gulp ejs ジョブで以下のエラーメッセージに遭遇することがあります。

1
2
[21:04:35] The following tasks did not complete: ejs
[21:04:35] Did you forget to signal async completion?

処理の末端まで実行されたのに、終了したと検知されないことが原因です。

対処方法

明示的に終了を宣言します。

具体的には、コールバック関数を実行します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var gulp = require('gulp');
var ejs = require('gulp-ejs');
var rename = require('gulp-rename');
var outdir = "../public/"

gulp.task('ejs', function(cb) {
gulp.src(
[
'../ejs/*.ejs' //入力ソースパターン&path
,'!' + "../../ejs/_*.ejs" //入力除外ソースパターン&path
]
)
.pipe(ejs())
.pipe(rename({extname: '.html'})) //出力ファイル名パターン
.pipe(gulp.dest(outdir)); //出力path

cb();

});

このように、

1
gulp.task('ejs', function(cb) {

cb()というコールバックを引数にとってタスクを定義します。

タスクの最後で、

1
cb();

コールバックを実行します。

こうすることで、

1
2
[21:06:50] Starting 'ejs'...
[21:06:50] Finished 'ejs' after 28 ms

ちゃんと終了してくれます。

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱