每当js文件发生变化时,我们都会使用gulp和browserify来创建项目的构建。随着项目的发展,这个过程变得非常慢,从200ms -> ~5s。该项目有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)
};这是基于我们的项目大小的正常行为吗?还是我们做错了什么?
发布于 2016-03-07 02:28:59
这是因为browserify总是重新编译所有东西。如果你想要更好的性能,你应该使用增量构建。我已经为此开发了一个吞咽插件:https://github.com/ngryman/gulp-bro。
https://stackoverflow.com/questions/26411902
复制相似问题