每当 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)
};
根据我们的项目规模,这只是正常行为吗?还是我们做错了什么?
最佳答案
那是因为 browserify
总是重新编译所有内容。如果您想要良好的性能,您应该使用增量构建。
我专门为此开发了一个 gulp 插件:https://github.com/ngryman/gulp-bro .
关于javascript - Browserify + gulp 变得很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26411902/