2016-01-21 64 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