簡體   English   中英

gulp-include和gulp-uglify不起作用

[英]gulp-include with gulp-uglify doesn't work

我有一個使用gulp.task 'scripts' gulp-uglify gulp.task 'scripts' 然后,我還添加了gulp-import ,它沒有用。 如果我只做uglify工作。 如果我只import它可以工作。 但是,如果我同時做兩個都行不通。 這是函數:

gulp.task('scripts', function(){
    gulp.src([
            'testgulp/**/*.js', '!testgulp/**/_*.js', '!testgulp/**/*.min.js'
        ])
        .pipe(include()) //if I comment only this line, uglify works
            .on('error', console.log)
        .pipe(uglify()) //if I comment only this line, include works
        .pipe(rename({ suffix: '.min' }))
        .pipe(gulp.dest(function(file) { return file.base; }));

});

然后在終端上嘗試同時執行以下操作時,我得到此響應:

/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/map-stream/index.js:103
        throw err
        ^
GulpUglifyError: unable to minify JavaScript
    at createError (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/gulp-uglify/lib/create-error.js:6:14)
    at wrapper (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/gulp-uglify/node_modules/lodash/_createHybrid.js:87:15)
    at trycatch (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/gulp-uglify/minifier.js:26:12)
    at DestroyableTransform.minify [as _transform] (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/gulp-uglify/minifier.js:76:19)
    at DestroyableTransform.Transform._read (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:159:10)
    at DestroyableTransform.Transform._write (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:147:83)
    at doWrite (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:313:64)
    at writeOrBuffer (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:302:5)
    at DestroyableTransform.Writable.write (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:241:11)
    at Stream.ondata (stream.js:31:26)

我離開了Koala App,添加/添加功能很棒,所以我想對Gulp做同樣的事情。 我嘗試了gulp-include和gulp-import,兩者都有相同的問題。 我做錯了什么? 謝謝 :)

-編輯-我也嘗試了gulp -sync並在minifyit任務上對timeout()進行了硬編碼,但無法解決問題...

好吧,我想我找到了問題。 首先,我需要安裝gulp-util才能更好地找出錯誤所在。

gulp.task('scripts', function(){
    gulp.src([
            'assets/scripts/**/*.js',
            '!assets/scripts/**/_*.js',
            '!assets/scripts/**/*.min.js'
        ])
        .pipe(include())
            .on('error', console.log)
        .pipe(uglify().on('error', gutil.log)) //gulp-util
        .pipe(rename({ suffix: '.min' }))
        .pipe(gulp.dest(function(file) { return file.base; }));
});

然后是ES5速記uglify引發的錯誤。 我還必須安裝gulp-babel,以及最終代碼:

gulp.task('scripts', function(){
    gulp.src([
            'assets/scripts/**/*.js',
            '!assets/scripts/**/_*.js',
            '!assets/scripts/**/*.min.js'
        ])
        .pipe(include())
            .on('error', console.log)
        .pipe(babel({
            presets: ['es2015'], //this fixed a shorthand javascript error
            compact: true
        }))
        .pipe(uglify().on('error', gutil.log)) // gulp-util
        .pipe(rename({ suffix: '.min' }))
});

這解決了我的問題。 希望能幫助別人:)

您應該使用泵模塊。

   var pump = require('pump');

   gulp.task('scripts', function(){
       pump([
          gulp.src([...]),
          ugilfy(),
          rename({ suffix: '.min' }),
          gulp.dest(...)
       ]);
   });

您會看到為什么使用泵

只需將它們作為單獨的函數,並在丑陋的函數之前運行包含函數:

 gulp.task('include,function({
       // include code here
 });

 gulp.task('uglify',['include'],function({
          // uglify code here
 });

當您運行uglify函數時,[]之間的include函數將在uglify函數之前運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM