2016-03-24 11 views
1

私はgulp 4にアップグレードしようとしているgulp 3ファイルを持っています。次のように私は取得しています3つのエラーは、次のとおりです。Gulp 4移行エラー(非同期完了を知らせるのを忘れましたか?)

クリーンスタイル:

gulp.task('clean-styles', function (done) { 
    var files = config.temp + '**/*.css'; 
    clean(files, done); 
}); 

[23:47:05] The following tasks did not complete: clean-styles 
[23:47:05] Did you forget to signal async completion? 

SCSS-ウォッチャー:

gulp.task('scss-watcher', function() { 
    gulp.watch([config.scss], ['styles']); 
}); 

[23:51:27] 'scss-watcher' errored after 2.46 ms 
[23:51:27] Error: watching ./src/client/styles/styles.scss: watch task has to be a function (optionally generated by using gulp.parallel or gulp.series) 

スタイル:私はクリーンなスタイルを削除する場合(これは動作しますシリーズ)

gulp.task('styles', gulp.series('clean-styles', function() { 
log('Compiling SCSS --> CSS'); 

return gulp 
    .src(config.scss) 
    .pipe($.scss()) 
    .pipe($.autoprefixer({ browsers: ['last 2 versions', '> 5%'] })) 
    .pipe(gulp.dest(config.temp)); 
})); 

[23:52:42] The following tasks did not complete: styles, clean-styles 
[23:52:42] Did you forget to signal async completion? 

獣医:(ワークス)

gulp.task('vet', function() { 
    log('Analyzing source with ESLint'); 
    return gulp 
     .src(config.js) 
     .pipe($.if(args.verbose, $.print())) 
     .pipe($.eslint()) 
     .pipe($.eslint.format()) 
     .pipe($.eslint.failOnError()); 
}); 

機能:

function clean(path, done) { 
    log('Cleaning: ' + $.util.colors.blue(path)); 
    del(path, done); 
} 

function log(msg) { 
    if (typeof(msg) === 'object') { 
     for (var item in msg) { 
      if (msg.hasOwnProperty(item)) { 
       $.util.log($.util.colors.blue(msg[item])); 
      } 
     } 
    } 
    else { 
     $.util.log($.util.colors.blue(msg)); 
    } 
} 

私は何かが欠けする必要があります。誰か私が行方不明に私を記入することはできますか?

答えて

2

クリーンスタイル

delは、コールバック関数を取ることはありません。それはあなたの仕事に返却する必要がありPromiseを返します。

function clean(path) { 
    log('Cleaning: ' + $.util.colors.blue(path)); 
    return del(path); 
} 
gulp.task('clean-styles', function() { 
    var files = config.temp + '**/*.css'; 
    return clean(files); 
}); 

SCSS-ウォッチャー

gulp.watch()はもうタスク名の配列をサポートしていません。

は上記clean-stylesへの変更で動作するはず

gulp.task('scss-watcher', function() { 
    gulp.watch([config.scss], gulp.series('styles')); 
}); 

スタイル:あなたはそれを機能、gulp.series()またはgulp.parallel()を渡す必要があります。

+0

ありがとうございましたtypescriptですをコンパイルするとき、私は次のエラーを取得します。エラーTS2304:名前 'Promise'を見つけることができません、エラーTS2304:名前 'Map'を見つけることができません、エラーTS2304:名前 'MapConstructor'を見つけることができません、エラーTS2304:名前 'Set'を見つけることができませんエラーTS2304: 'Iterator'エラーTS1219:デコレータの実験的サポートは、将来のリリースで変更される可能性のある機能です。このwarniを削除するにはexperimentalDecoratorsオプションを設定してくださいng。それでもまだそれはコンパイルされます。これを修正する方法はありますか? – Dblock247

+0

これはGulp 4に移行するという元の質問に実際には関係しません。新しい質問を開き、エラーメッセージとGulpfileの関連部分(またはTypeScriptファイルのコンパイルに使用するもの)を含める必要があります。エラーを再現できる最小限のTypeScriptファイルを含めるとよいでしょう。 –

+0

@SvenSchoenungこれは、readme.ioのGulp 4ドキュメントが正しくないことを意味しますか?https://gulp.readme.io/docs/gulpwatchglob-opts-fn?最初の引数には、グロブの配列を指定することができます: "変更を監視するファイルを示すグロブの単一のグロブまたは配列。" – revelt

0

友人、これはこの問題の回避策です:

私たちは、コールバック関数を呼び出す必要があります(iは1より多くの質問をすることができ、タスクとAnonimous

function electronTask(callbackA) 
{ 
    return gulp.series(myFirstTask, mySeccondTask, (callbackB) => 
    { 
     callbackA(); 
     callbackB(); 
    })(); 

}