gulp - 使用browserify uglify js文件?

时间:2017-05-04 20:53:33

标签: node.js browserify gulp-uglify

我正在完全关注here的示例并拥有自己的版本:

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 个答案:

答案 0 :(得分: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存储库中提供了另一个示例(确实应该在Gulp中直接使用browserify API)。