2016-01-21 63 views
15

我想在我的JavaScript上使用gulp來運行babel-preset-es2015,但即使在一行代碼中也需要永久使用。我最初嘗試用我的腳本包大約700位,然後用一行虛擬腳本。第一種情況大約需要9s - 1行我需要8.38s。gulp babel es2015轉換非常緩慢

這是我的確切設置:

的package.json:

{ 
    "devDependencies": { 
     "gulp": "^3.9.0", 
     "gulp-babel": "^6.1.1", 
     "babel": "^6.3.26", 
     "babel-preset-es2015": "^6.3.13" 
    }, 
    "babel": { 
     "presets": [ "es2015" ] 
    } 
} 

gulpfile.js:

gulp.task('js', function() { 
    return gulp.src('dummyscript.js') 
     .pipe(concat('site.bundle.js')) 
     .pipe(babel()) 
     .pipe(gulp.dest(paths.dest.scripts)); 

}); 

dummy.js:

console.log('dummy script'); 

我運行節點v4.2.4和npm v2.14.12。

其他操作,如吞嚥反應和吞嚥污染都需要大約180毫秒的組合。

這是怎麼回事?

+1

你應該確保你的依賴關係被'npm depupe'重複並考慮升級到'npm @ 3'。如果不能很好地解釋,Babel可能會很慢。 – loganfsmyth

+0

npm3做的伎倆,謝謝!用我最初的腳本降至600毫秒,我猜可以忍受。如果你想讓這個答案,我會接受:) – severin

回答

21

巴別塔6有許多高度嵌套的子依賴性。如果你有一個非平坦的依賴樹,這可能會很慢。在你的情況下,你正在使用npm 2,你將需要npm dedupe或安裝[email protected]並重新安裝,以便你的依賴關係被平坦化。

+0

這^^^^^^^^^^^^ :) – NewZeroRiot

+0

我錯過了用npm3重新安裝。這從我的服務器啓動流下10秒! –

+0

每次都需要我30秒。 – LCB