2016-08-21 87 views
2

我有一個gulp.task 'scripts',它使用gulp-uglify。然後我又添加了gulp-import,它沒有工作。如果我只有uglify它的作品。如果我只有import它的作品。但是,如果我在同一時間都做不到這一點。 下面是函數:gulp-include with gulp-uglify不起作用

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) 

我從考拉應用程序和附加/添加功能搬走是真棒,所以我想和Gulp一樣。我嘗試了gulp-include和gulp-import,兩者都有同樣的問題。我做錯了什麼? 謝謝:)

CNC中 我也嘗試一口同步和硬編碼在minifyit任務超時(),但不解決問題......

回答

0

只要有他們作爲獨立的功能,並有包括一個運行前的醜化一個:

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

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

的包括與功能[]當您運行醜化功能醜化功能之前將運行

+0

我也試過,但沒有修復。問題是在我使用JavaScript的速記上...檢查我自己的答案上面有更多詳細信息 –

1

您應該使用泵模塊。

var pump = require('pump'); 

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

你可以看到why use pump

+0

pump和util有什麼區別? –

5

好吧,我想我找到了問題。 首先,我需要安裝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' })) 
}); 

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

+0

gulp-util幫我找到了錯誤(泵沒有),謝謝分享! – Stepan