0

gulpif と lazypipes を使用せずに動作する Grunt ファイルがありますが、私がしようとしているのは、useref. 次にgulpifJS lintuglify/concatenate 、およびnotify. 「Error: Invalid call to lazypipe()..」というメッセージが表示され、この投稿https://github.com/OverZealous/lazypipe/issues/19を見ていましたが、私は少し緑色でわかりませんエラー/修正方法「pipe(foo) vs. pipe(foo())」。 誰かが私が間違ったレイジーパイプをどのように使用しているかを教えてくれたら=私は良いはずです。

grunt ファイルは大きく、gulpif bc css を使用しています。これが機能するようになったら、これも使用されます。これを行うためのより良い方法があれば教えてください、ありがとう。

使用中のプラグイン:

var gulp        = require('gulp'),
jshint          = require('gulp-jshint'),
notify          = require('gulp-notify'),
gulpif          = require('gulp-if'),
lazypipe        = require('lazypipe'),
useref          = require('gulp-useref');
uglify          = require('gulp-uglify');

var anyJS       = '/**/*.js',
    distFolder  = 'dist';

//Lazy Tasks
    var jsTask = lazypipe()
        .pipe(jshint)
        .pipe(jshint.reporter('jshint-stylish'))
        .pipe(notify('JS Linting finished'))
        .pipe(uglify())
        .pipe(notify('JS Compressing finished'));


//Tasks
    gulp.task('mini', function () {
        return gulp.src('./index.html')
            .pipe(useref())
            .pipe(gulpif(anyJS, jsTask()))
            .pipe(gulp.dest(distFolder));
    });
4

2 に答える 2

0

あなた自身の答えで指摘したように、lazypipe. パラメータを使用しないファクトリの場合、これは を削除するのと同じくらい簡単()です。パラメータが必要なファクトリの場合、アロー関数を使用してそのようなファクトリを作成できます。

var jsTask = lazypipe()
    .pipe(jshint)
    .pipe(() => jshint.reporter('jshint-stylish'))
    .pipe(() => notify('JS Linting finished'))
    .pipe(uglify)
    .pipe(() => notify('JS Compressing finished'));

を使用してこのようなファクトリを作成することもできますbind()が、呼び出しコンテキストを気にする必要がないため、上記の方法の方が簡単です。

于 2021-03-12T03:06:18.863 に答える