2017-05-04 96 views
0

我下面从确切here的例子,有我自己的版本:gulp - 用browserify uglify js文件?

gulp.task('build-js', function() { 
    var bundler = browserify('js/*.js'); 

    return bundler.pipe() 
     .pipe(source('bundle.min.js')) 
     .pipe(buffer()) 
     .pipe(sourcemaps.init()) 
     .pipe(uglify()) 
     .pipe(sourcemaps.write('./maps')) 
     .pipe(gulp.dest('dist')) 
     .pipe(livereload()); 
}); 

可是为什么我得到这个错误:

$ gulp 
[21:48:33] Using gulpfile /var/www/html/mysite/gulpfile.js 
[21:48:33] Starting 'apply-prod-environment'... 
Setting NODE_ENV to 'production' 
Successfully set NODE_ENV to production 
[21:48:33] Finished 'apply-prod-environment' after 169 μs 
[21:48:33] Starting 'build-js'... 
[21:48:33] 'build-js' errored after 11 ms 
[21:48:33] TypeError: bundler.pipe is not a function 

有什么我错过了?

回答

1

似乎由vinyl-buffer提供的例子有一个错误:将转换前必须先调用bundle(),不pipe()

return bundler.bundle() 
    .pipe(source('bundle.min.js')) 
    .pipe(buffer()) 
    .pipe(sourcemaps.init()) 
    .pipe(uglify()) 
    .pipe(sourcemaps.write('./maps')) 
    .pipe(gulp.dest('dist')) 
    .pipe(livereload()); 

另一个例子是在Gulp库提供的(一个确实应该直接使用browserify API在Gulp)。

+0

我刚才也注意到了! – laukok

+1

我会照顾建议对自述文件进行编辑。 :) https://github.com/hughsk/vinyl-buffer/pull/6 –

+0

谢谢你这样做! :-) – laukok