Gulp babel es2015变换非常慢

sev*_*rin 16 javascript node.js gulp babeljs

我正在尝试使用gulp在我的JavaScript上运行babel-preset-es2015,但它甚至需要一行代码.我最初尝试使用大约700 loc的脚本包,然后使用1行的虚拟脚本.第一种情况需要大约9s - 1行我需要8.38s.

这是我的确切设置:

的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" ]
    }
}
Run Code Online (Sandbox Code Playgroud)

gulpfile.js:

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

});
Run Code Online (Sandbox Code Playgroud)

dummy.js:

console.log('dummy script');
Run Code Online (Sandbox Code Playgroud)

我正在运行节点v4.2.4和npm v2.14.12.

其他操作如gulp-react和gulp-uglify都需要大约180ms的组合.

到底是怎么回事?

log*_*yth 21

Babel 6有许多高度嵌套的子依赖关系.如果您有一个非展平的依赖关系树,这可能会非常慢.在您的情况下,您使用的是npm 2,您将需要npm dedupe安装npm@3和重新安装,以便平衡您的依赖项.