1
當js文件發生變化時,我們一直在使用gulp和browserify來創建項目的構建。隨着項目的發展,這個過程變得非常緩慢,從200ms - >〜5s。該項目有69個目錄,173個文件,最大深度爲4個文件夾。我們正在應用一些轉換。這是我們的構建代碼。Browserify + gulp變得緩慢
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)
};
這是正常的行爲,根據我們的項目大小?或者我們做錯了什麼?
什麼是項目文件的實際「大小」。這可能相當於大量的併發I/O,具體取決於你如何調用buildJS。你有多個構建過程?或者這是唯一的一個? – dannypaz 2014-10-16 19:05:19
我想說的是,你是否真的需要做所有的'發展'。也許你可以減輕一些痛苦並削減一些任務(留下這個構建過程僅用於測試/部署)。 – dannypaz 2014-10-16 19:07:34
本文建議使用watchify和browserify進行增量構建:http://blog.avisi.nl/2014/04/25/how-to-keep-a-fast-build-with-browserify-and-reactjs/ – Heikki 2014-10-16 20:30:28