2014-10-16 65 views
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) 
}; 

這是正常的行爲,根據我們的項目大小?或者我們做錯了什麼?

+0

什麼是項目文件的實際「大小」。這可能相當於大量的併發I/O,具體取決於你如何調用buildJS。你有多個構建過程?或者這是唯一的一個? – dannypaz 2014-10-16 19:05:19

+0

我想說的是,你是否真的需要做所有的'發展'。也許你可以減輕一些痛苦並削減一些任務(留下這個構建過程僅用於測試/部署)。 – dannypaz 2014-10-16 19:07:34

+0

本文建議使用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

回答