大家好,我目前正在使用uglify-gulp和babel来缩小我的js。它与es2015和es2016一起使用效果很好。但是,如果我尝试执行es2017,它会中断。
有谁知道使用es2017中的新实验功能来缩小js的变通办法吗?
gulp.src('build/js/bundled/bundle.js')
.pipe(babel({
compact: false,
presets: ["es2017", "react"],
plugins: ["transform-decorators-legacy"],
}))
.pipe(uglify())
.pipe(gulp.dest('build/js/bundled'));
产生这个错误
GulpUglifyError: unable to minify JavaScript
如果我将es2017更改为es2015 / es2016,它将最小化没有es2017功能的捆绑包。但我希望能够使用这些实验性功能并能够最小化我的代码
最佳答案
我认为Uglify无法解析某些ES2015功能,因此您需要将这些功能转换为ES5(es2017
目标节点5+)。
使用these webpack instructions,特别是预设和插件,您应该能够使它工作(至少对我有用,因为我可以仅使用es2017
复制类似的Uglify问题):
presets: ['es2015', 'es2017', 'react'],
plugins: ['transform-runtime', 'transform-decorators-legacy', 'transform-class-properties']