カスタムコードでES6を使用する際のミニフィケーションの問題

この記事では、カスタムコードで ECMAScript 6 (ES6) を使用していて、ES6 コード のトランスパイルされていない場合に発生するミニフィケーションエラーについて説明します。

本番環境では、CSS と JavaScript のリソースを最小化し、コードを軽量化するために、以下のプロパティを有効にします。

minifier.enabled=true

Liferay Digital Enterprise 7.0では、Google Closure Compiler (closure-compiler.jar)を使用して、この最小化処理を行っています。 このライブラリのバージョンv20131014では、 がトランスパイルされていない場合、ES6のコードを最小化しないという制限があります. 以下のような非常に似たエラーが表示されます。

2018-05-18 13:32:48.754 ERROR [http-nio-7180-exec-3][GoogleJavaScriptMinifier:116] (/o/com.liferay.docs.mvcportlet/js/main.js:3): Parse error. missing ; before statement
2018-05-18 13:32:48.756 ERROR [http-nio-7180-exec-3][GoogleJavaScriptMinifier:116] (/o/com.liferay.docs.mvcportlet/js/main.js:5): Parse error. illegal character
2018-05-18 13:32:48.756 ERROR [http-nio-7180-exec-3][GoogleJavaScriptMinifier:116] (/o/com.liferay.docs.mvcportlet/js/main.js:5): Parse error. missing ) after argument list
2018-05-18 13:32:48.757 ERROR [http-nio-7180-exec-3][GoogleJavaScriptMinifier:116] (/o/com.liferay.docs.mvcportlet/js/main.js:5): Parse error. illegal character
2018-05-18 13:32:48.757 ERROR [http-nio-7180-exec-3][GoogleJavaScriptMinifier:116] (/o/com.liferay.docs.mvcportlet/js/main.js:5): Parse error. syntax error
2018-05-18 13:32:48.758 ERROR [http-nio-7180-exec-3][GoogleJavaScriptMinifier:129] {0} error(s), {1} warning(s)

決議

コードを転置してください。

いくつかの方法については、以下の開発者のチュートリアルで説明していますので参考にしてください。

JS Transpiler Gradle プラグイン
ES2015 用の JavaScript ファイルの準備 4

追加情報

minifier.enabled=falseでマイニング処理を無効にすると、エラーは発生しません。 ただし、本番環境での最小化処理を無効にすることはお勧めしません。

この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています