問題タブ [google-closure-compiler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - MooTools フレームワーク用の Google Closure Compiler extern ファイル
高度な最適化モードの Google Closure Compiler は、ファイルを使用して extern を定義します。これにより、外部ライブラリ内のシンボルを参照する変数、プロパティ、および関数名が縮小され、コードが破損するのを防ぐことができます。私の目標は、MooTools フレームワーク (バージョン 1.2 および 1.3) を使用するコードをコンパイルすることですが、コードがクロージャー コンパイラーに供給されるときに MooTools 関数への参照が難読化されるのを防ぐ「公式の」extern ファイルを見つけることができません。私のファイルを正常に処理する次のかなり初歩的なカスタム extern ファイルを思いつきましたが、より良い代替手段 (MooTools ソースから自動生成するなど) はありますか?
javascript - Closure Compiler がこれを短縮しないのはなぜですか?
これが単なるバグなのか意図した機能なのかはわかりません。
基本的に、私はこの小さな関数を持っています(end
ここでは青色に着色されていますが、これは問題なく機能します。名前を別の名前に変更すると、まだ問題があります):
それをクロージャーコンパイルすると、次のようになります。
しかし、最初に宣言された変数 ( ) に設定されているのに、直接にselectionStart
設定されているのはなぜですか? やるほうが短くないですか?Math.min
selecitonEnd
c
tb.selectionEnd=Math.max(a,b)
どんなアイデアでも大歓迎です。
javascript - クロージャーコンパイラ-a++>=3は++a>3になることができますか?
数日前にClosureCompilerが一見短縮できるように見える特定のコードを短縮しない理由について質問したことは認めますが、その理由はこの場合には当てはまらず、なぜ短縮されないのかよくわかりません。ここ。
私が持っているコードは次のとおりです。
現在、プリインクリメントとポストインクリメントがあります。違いは戻り値です-それをa++
返しa
、次にそれをインクリメントし、++a
最初にそれをインクリメントしてa
からそれを返します。
これは、私のコードを(空白の削除を無視して)次のように短縮できるということです。
ただし、ClosureCompilerはこれを変更(または認識)していないようです。
++a >
したがって、私の質問は、代わりに使用した場合にどのような副作用が発生する可能性があるa++ >=
かということです。
javascript - GoogleのClosureCompilerで属性を削除するにはどうすればよいですか
次のコードでGoogleClosureCompilerの高度な最適化を使用する場合:
私はこの不満足な結果を得ます:
私が望んでいたこと:
ここでの本当の問題は、関数から複数の戻り値を取得できるように、属性に値を格納する必要があることです。私の知る限り、複数の戻り値を取得する方法は他にありません。私は当初、ClosureCompilerがこれらを排除することを望んでいましたがそうではないようです。
手作業で最適化された例と同等のコードを出力できる機能指向またはオブジェクト指向のJavaScriptライブラリを使用することは可能ですか?
属性のないコードはChromeとFirefoxで約100倍、Operaで12倍、IE9で4倍高速であるため、パフォーマンステストコードに欠陥があると確信しています。
このコードのパフォーマンステスト:http://jsperf.com/closure-compiler-vs-hand-optimized-vectors
google-closure-compiler - 「HelloWorld」plovrの例でJSC_MISSING_PROVIDE_ERRORが発生するのはなぜですか?
Closure:The Definitive Guide by Michael Bolinの簡単な「HelloWorld」の例を使用して、plovrを使い始めようとしています。しかし、私のビルドではエラーが発生します。誰かが私の間違いについて私に教えてもらえますか?
これが私のファイルレイアウトです:
これはhello.jsの内容です:
そしてこれはhello-config.jsの内容です:
これが私のビルド結果です(重要な場合に備えてJavaバージョンを投入しました):
私は些細なことを見逃しているに違いありませんが、私はそれを見ていません。
重要な場合、これはJava1.6.0_24で実行されました。
php - PHPを介してローカルでGoogleクロージャーコンパイラを使用する方法は?
クロージャ コンパイラ ライブラリ ( local ) と php の使用方法 js を難読化できますか?
コードに感謝します。おそらくいくつかのphpクラスがありますか?
ありがとう。
javascript - evalおよびgoogleクロージャーコンパイラの問題
Googleクロージャを使用してコードを圧縮していますが、次のコード行に問題があります。
controller_to_load
要素に対して実行する必要のあるメソッド()は可変であり、取得するパラメーターに依存するため、evalを使用する必要があります。
私の問題は、オブジェクトをそのメソッドに渡さなければならないことです。そのため、変数name(options_for_controller
)の文字列表現としてそれを実行していますが、クロージャーはその名前を変更し、評価文字列の変数名を変更しません。
私の解決策は次のとおりです。
- 文字列として動的な変数名を取得する
- オブジェクト(コールバック関数を使用)を文字列に解析する
- これらのコード行の圧縮を無効にする
しかし、どうすればそれらの1つを実行できますか、それとも別の解決策がありますか?
ありがとう
javascript - Google Closure Compiler の JavaScript でシングルトン オブジェクトに注釈を付ける、または「グローバルなこのオブジェクトの危険な使用」警告
ADVANCED_OPTIMIZATIONS コンパイル レベルで Google Closure Compiler を使用しており、あらゆる種類の警告が表示されるため、コンストラクターに注釈を付け始めました。
警告 - グローバルな this オブジェクトの危険な使用
「コンストラクタ」タイプの関数については、次のように注釈を付けます。
それはうまくいくようですが、 var myFoo = new Foo(); で構築されていない「シングルトン」オブジェクトがある場合はどうなりますか? このタイプのオブジェクトに注釈を付ける方法をドキュメントで見つけることができませんでした。そのタイプは単なるオブジェクトですよね?
javascript - javascript-グローバル関数名を細かく/難読化する方法は?
次の形式のコードがあります。
はい、関数はグローバルですが、グーグルクローム拡張コンテンツスクリプト内で書いているので問題ないので、サンドボックス化されています。
今、私はコードを縮小して難読化しようとしています。YUICompressorとGoogleClosureコンパイラを試しました。問題は、グローバル関数名を縮小/難読化する方法がわからないことです。YUIを使用すると、外部から呼び出された場合にグローバル変数を縮小しません。クロージャを詳細モードにすると、グローバル変数の名前を変更できるように見えますが、デッドコードの削除に問題があります。ほとんどの関数は、DOMの相互作用とイベント処理に依存し、直接呼び出されないため、機能していないように見えます。
では、これらのグローバル変数を最小化する方法について何かアイデアはありますか?正規表現の置換を行うためにスクリプトを作成する必要がありますか?また、ミニファイパターンにより適している場合は、コードをリファクタリングすることもできます(たとえば、クロージャーに追加するなど)。
msbuild - ビルドサーバーでのGoogleClosureCompilerとMSBuildの統合
CIプロセスの一部としてJavaScriptファイルを縮小する方法を検討しています。これにより、縮小されていないファイルを開発で使用し、ステージングサーバーやライブサーバーにデプロイするときに自動的に圧縮することができます。
これはASP.NETサイト用です。Hudsonをビルドサーバーとして使用します。
私はGoogleClosureコンパイラに興味があり、この.Net MSBuild Google Closureコンパイラタスクに出くわしましたが、あまり広く使用されていないようです。Closureまたは代替のミニファイツールを使用して、MSBuildで使用するためのより良いオプションはありますか?