この記事では、カスタムコードで 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)
決議
コードを転置してください。
いくつかの方法については、以下の開発者のチュートリアルで説明していますので参考にしてください。
追加情報
minifier.enabled=false
でマイニング処理を無効にすると、エラーは発生しません。 ただし、本番環境での最小化処理を無効にすることはお勧めしません。
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン