每当js文件发生变化时,我们一直在使用gulp和browserify来创建项目的构建。随着项目的发展,这个过程变得非常缓慢,从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)
};
这是基于我们项目规模的正常行为吗?或者我们做错了什么?
答案 0 :(得分:0)
那是因为browserify
总是重新编译一切。如果你想要良好的性能,你应该使用增量构建。
我为此精确地开发了一个gulp插件:https://github.com/ngryman/gulp-bro。