Javascript Browserify&x2B;吞咽变慢

Javascript Browserify&x2B;吞咽变慢,javascript,gulp,browserify,Javascript,Gulp,Browserify,我们一直在使用gulp和browserify在js文件更改时创建项目的构建。随着项目的发展,这个过程变得异常缓慢,从200毫秒到5秒。该项目有69个目录、173个文件,最大深度为4个文件夹。我们正在应用一些变换。这是我们的构建代码 var buildJS = function (entryPoint, name, cb) { var browserify = require('browserify'); var uglify = require('gulp-uglify');

我们一直在使用gulp和browserify在js文件更改时创建项目的构建。随着项目的发展,这个过程变得异常缓慢,从200毫秒到5秒。该项目有69个目录、173个文件,最大深度为4个文件夹。我们正在应用一些变换。这是我们的构建代码

var buildJS = function (entryPoint, name, cb) {
    var browserify = require('browserify');
    var uglify = require('gulp-uglify');
    var source = require('vinyl-source-stream');
    var buffer = require('vinyl-buffer');
    var reactify = require('reactify');
    var literalify = require('literalify');
    var brfs = require('brfs');

    browserify()
        .require(entryPoint + '/' + name + '.jsx')
        .transform({
           global: true
        }, reactify)
        .transform({
           global: true
        }, brfs)
        .transform({
           global: true
        }, literalify.configure(literalifyConfig))
        .external(config.libs)
        .bundle({
            debug: config.DEV,
            //detectGlobals : false
        })
        .on('error', handleError)
        .pipe(source('bundle.js'))
        .pipe(buffer())
        .pipe(gulpIf(!config.DEV, uglify()))
        .pipe(gulp.dest(config.buildPath + '/' + name))
        .on('finish', cb)
};

这只是基于项目规模的正常行为吗?还是我们做错了什么?

那是因为
browserify
总是重新编译所有内容。如果希望获得良好的性能,则应该使用增量构建。
我已经开发了一个gulp插件,正是为了这个目的:。

项目文件的实际“大小”是多少。这可能会导致大量并发I/O,具体取决于您调用buildJS的方式。您是否有多个构建过程?或者这是唯一的一个?我想说的是,你真的需要做所有这些“为了发展”。也许你可以减轻一些痛苦,减少一些任务(将此构建过程仅用于测试/部署)。本文建议使用watchify和browserify进行增量构建:还有一个简单的方法:@livepo单个文件非常小,大约300行。此构建确实单独运行(每当我们更新js文件时)。这个构建过程是必需的,因为代码都是用JSX和节点样式编写的,所以不适合发送给客户机。