some es6 features are not understood by grunt uglify js?

前端 未结 5 1626
眼角桃花
眼角桃花 2020-12-11 00:41

I used grunt-uglify in my project and I\'m working with es6. for some es6 features, such as fat arrow function, it\'s throwing an error. I think the uglify don\'t understant

相关标签:
5条回答
  • 2020-12-11 01:09

    If the resulting code does not need to use ES6 syntax, it is also possible to transpile ES6 to ES5, before uglifying your code. This can for example be done with the Grunt task grunt-es6-transpiler.

    0 讨论(0)
  • 2020-12-11 01:14

    A Grunt plugin ES6 parser, mangler/compressor and beautifier toolkit for ES6+ is now available:

    https://github.com/adascal/grunt-terser

    Great job, it just works as expected.

    The harmony branch of grunt-contrib-uglify is deprecated, it's not a sustainable solution.

    0 讨论(0)
  • 2020-12-11 01:17

    Officially there's no tool that minifies ES6 yet (Other tools like Google Closure compiler supports ES6 but it transpile it into "traditional js" and then it's minified).

    Although not all the es6 features are supported in UglifyJs, the Harmony branch of UglifyJS2 seems to support arrow functions and other features.

    You can read the discussion about it in the issue of github here. It seems there's not another option to wait (or create your own ES6 minifier).

    Update

    Now you have 2 options to minify ES6:

    • Babili, an ES6+ aware minifier based on the Babel toolchain (beta)
    • The Harmony branch of UglifyJS
    0 讨论(0)
  • 2020-12-11 01:20

    You can use the harmony branch of grunt-contrib-uglify.

    npm install git://github.com/gruntjs/grunt-contrib-uglify.git#harmony --save-dev
    

    works perfectly with es6. No additional settings for grunt are required.

    0 讨论(0)
  • 2020-12-11 01:22

    I just updated to uglify-js@2.8.29 and it worked.

    0 讨论(0)
提交回复
热议问题