legacy-knowledge-base
公開されました Sep. 10, 2025

JavaScript Minifier は変数/パラメーター名を短縮しません

written-by

Jose L. Bango

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • Liferay インスタンスを次のように構成すると:
    minifier.enabled=true
    javascript.fast.load=true
    theme.images.fast.load=true
    layout.template.cache.enabled=true
    JavaScript Minifier は、空白、改行、コメントなどを正常に削除しますが、変数や関数パラメーター名を短縮しません。
  • たとえば、次の場合:
    function foo(bar){
       alert(bar);
    }
    次の出力が得られます。
    function foo(bar){alert(bar);}
    次のようなものの代わりに:
    function foo(a){alert(a);}
  • Liferay とカスタム開発ファイルの両方で発生します。

Environment

  • DXP 7.1 以上

解決策

  • 縮小は、実行時に クロージャ コンパイラ ライブラリ によって行われます。
  • バージョン v20131014 から v20180204へのアップグレード以来、ミニファイアーは期待どおりに機能しませんでした: 前述のように変数/パラメーター名を短縮しません。
    • これはまだ 7.0.x にバックポートされていないため、DXP 7.0 は影響を受けません。
    • これは、クロージャ コンパイラ ライブラリの 既知のバグ です。
    • この方法で提供された場合、完全に縮小されたファイル (通常は YUI ファイル) が見つかる可能性があることに注意してください。
  • この問題を解決するには、より積極的な縮小を実行する必要があります。 数年経った今、解決しようとすると、実行時に予期しないエラーが発生することがわかりました。
    • リソースの高速読み込み (1 つのリソースで複数のファイルを提供する) により、プラットフォームでこれらのエラーが発生しやすくなることに注意してください。
  • さらに、カスタム開発されたコードが存在すると、より積極的な縮小を試みると、そこで新しいエラーが発生する可能性があります。
  • Liferay DXP 7.4 では、この縮小方法 (実行時) は廃止され、ビルド時の縮小が推奨されました ( LPS-122883を参照)。
  • したがって、上記のすべてを考慮して、 この問題は修正されないことが決定されました

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base