私のプロジェクトではgrunt-uglifyを使用しており、es6を使用しています。ファットアロー関数などの一部のes6機能では、エラーがスローされます。 uglifyはその構文を理解していないと思います。この問題を修正する方法はありますか? uglifyにすべてのes6構文を理解させるために何かを使用できますか?
正式にはまだES6を縮小するツールはありません(Google Closureコンパイラなどの他のツールはES6をサポートしていますが、「従来のjs」に変換してから縮小されます)。
すべてのes6機能がUglifyJsでサポートされているわけではありませんが、 glifyJS2のHarmonyブランチ は、矢印関数やその他の機能をサポートしているようです。
ここでのgithubの問題に関する議論を読むことができます 。待機する(または独自のES6ミニファイアを作成する)別のオプションはないようです。
更新
これで、ES6を縮小するための2つのオプションがあります。
grunt-contrib-uglify
のharmony
ブランチを使用できます。
npm install git://github.com/gruntjs/grunt-contrib-uglify.git#harmony --save-dev
es6で完全に動作します。グラントの追加設定は必要ありません。
結果のコードでES6構文を使用する必要がない場合は、コードを醜悪にする前に、ES6をES5にトランスパイルすることもできます。これは、たとえばGruntタスク grunt-es6-transpiler で実行できます。
GruntプラグインES6パーサー、mangler/compressor、およびES6 +用の美容ツールキットが利用可能になりました:
https://github.com/adascal/grunt-terser
よくできました。期待どおりに機能します。
grunt-contrib-uglify
のharmony
ブランチはdeprecatedであり、持続可能なソリューションではありません。
私は[email protected]に更新しましたが、うまくいきました。