0

最新のクロージャコンパイラjarファイルをダウンロードし、hereの指示に従って、別の場所で定義されているJS関数への参照を保持する方法を確認してください。高度な最適化とExternsを使用したクロージャコンパイラ

function hello(nom) 
{ 
alert(nom + familyName()); 
} 

私の外部宣言

は、私は、問題

function familyName(){} 

コードが含まれているをファイルに定義されexterns.jsされている次のように

私のテストスクリプトは、hello.jsですコマンド

java -jar closure.jar --js hello.js --externs externs.js --js_output_file hello-compiled.js --compilation_level ADVANCED_OPTIMIZATIONS 

ADVANED_OPTIMIZATIONSがなくても、すべて正常に動作します。効果的にコードを縮小します。しかし、高度なフラグを入れると、出力hello_compiled.jsが空の1バイトファイルとして出力されます。明らかに、私は何かを誤解しています。私はここに正しい道を私に置くことができるかもしれない誰にも義務づけられます。

答えて

1

あなたのhello.jsはhello機能を定義していると思われますか?その場合は、実際に何かが発生するように、追加する必要があります:

online closure compilerでこれを試すことができます。デフォルトのコードがあります:あなたは最後の行をコメントアウトし、「先進」ボタンをクリックしてコンパイルする場合

function hello(name) { 
    alert('Hello, ' + name); 
} 
hello('New user'); 

、結果は成功したが、それはゼロバイトです。これはコードが効果的に何もしないので、コンパイラは正しいことをしているからです。

+0

よく斑点を付けられました - 今言いました - 常識です。コンパイラに最適化を依頼していて、コンパイルされた最適化された出力に冗長なコードがあることを期待していました。 – DroidOS

関連する問題