web-dev-qa-db-ja.com

いくつかのes6機能は、うんざりしたuglify jsで理解できませんか?

私のプロジェクトではgrunt-uglifyを使用しており、es6を使用しています。ファットアロー関数などの一部のes6機能では、エラーがスローされます。 uglifyはその構文を理解していないと思います。この問題を修正する方法はありますか? uglifyにすべてのes6構文を理解させるために何かを使用できますか?

17
user6536526

正式にはまだES6を縮小するツールはありません(Google Closureコンパイラなどの他のツールはES6をサポートしていますが、「従来のjs」に変換してから縮小されます)。

すべてのes6機能がUglifyJsでサポートされているわけではありませんが、 glifyJS2のHarmonyブランチ は、矢印関数やその他の機能をサポートしているようです。

ここでのgithubの問題に関する議論を読むことができます 。待機する(または独自のES6ミニファイアを作成する)別のオプションはないようです。

更新

これで、ES6を縮小するための2つのオプションがあります。

14
Carlos Delgado

grunt-contrib-uglifyharmonyブランチを使用できます。

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

es6で完全に動作します。グラントの追加設定は必要ありません。

18

結果のコードでES6構文を使用する必要がない場合は、コードを醜悪にする前に、ES6をES5にトランスパイルすることもできます。これは、たとえばGruntタスク grunt-es6-transpiler で実行できます。

2
gillesB

GruntプラグインES6パーサー、mangler/compressor、およびES6 +用の美容ツールキットが利用可能になりました:

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

よくできました。期待どおりに機能します。

grunt-contrib-uglifyharmonyブランチはdeprecatedであり、持続可能なソリューションではありません。

1
migli

私は[email protected]に更新しましたが、うまくいきました。

1
Yoraco Gonzales