9

私のgulpfileには次のコードがあります

gulp.task('scripts', function () {
    gulp.src(paths.browserify)
        .pipe(browserify())
        .pipe(gulp.dest('./build/js'))
        .pipe(refresh(server));
});

gulp.task('lint', function () {
    gulp.src(paths.js)
        .pipe(jshint())
        .pipe(jshint.reporter(stylish));
});

gulp.task('nodemon', function () {
    nodemon({
        script: 'app.js'
    });
});

Nodemon の再起動時にスクリプトと lint タスクを実行する必要があります。

gulp.task('nodemon', function () {
    nodemon({
        script: 'app.js'
    }).on('restart', function () {
        gulp.run(['scripts', 'lint']);
    });
});

Gulp.run() は非推奨になったため、gulp とベスト プラクティスを使用して上記を達成するにはどうすればよいですか?

4

2 に答える 2

9

gulp-nodemon のドキュメントには、実行するタスクの配列を渡して直接実行できると記載されています。

nodemon({script: 'app.js'}).on('restart', ['scripts', 'lint']);

こちらのドキュメントをご覧ください

gulp-nodemon の作成者が run も使用しているため、更新します。

アイデア#1、関数を使用:

var browserifier = function () {
  gulp.src(paths.browserify)
    .pipe(browserify())
    .pipe(gulp.dest('./build/js'))
    .pipe(refresh(server));
});

gulp.task('scripts', browserifier);

var linter = function () {
  gulp.src(paths.js)
    .pipe(jshint())
    .pipe(jshint.reporter(stylish));
});

gulp.task('lint', linter);

nodemon({script: 'app.js'}).on('restart', function(){
  linter();
  browserifier();
});
于 2014-02-06T13:41:12.240 に答える
3

可能であれば、関数の使用に関する Mangled Deutz の提案を使用してください。これは、これが現在および将来的に機能することを確認するための最良の、最も保証された方法です。

ただし、依存するタスクまたは一連のタスクを実行する必要がある場合、関数は役に立ちません。これを修正するためにrun-sequenceを書きました。に依存せずgulp.run、一連のタスクを順番に実行できます。

于 2014-02-06T15:57:01.633 に答える