javascript google closure - 自分のjsモジュールをgoog.provideとgoog.requireで読み込むにはどうすればいいですか?





3 Answers

更新!!!

calcdeps.pyの新しいバージョンはゲームを少し変更します。 deps.jsを作成するには、-dフラグを使用する必要があります。 例えば:

python path-to-closure-library/closure/bin/calcdeps.py -i path-to-your-src/requirements.js -o deps -d path-to-closure-library/closure/ -p path-to-your-src/ --output_file=path-to-your-src/deps.js

コンパイルします:

python path-to-closure-library/closure/bin/calcdeps.py -i path-to-your-src/requirements.js -d path-to-closure-library/closure/ -p ./ --output_file=path-to-your-release/scripts.min.js -c path-to-compiler/compiler.jar -f "--compilation_level=ADVANCED_OPTIMIZATIONS" -f "--debug=true" -f "--process_closure_primitives=true" -f "--manage_closure_dependencies=true" -o compiled

だから、プロセスは実際はずっと簡単ですが、ESPの能力を使って完全に文書化されていないことを知る必要があります。 calcdeps.pyは、Windows上のPython 3.1でも動作しないので、楽しいヒープもあります。 いくつかのハックが私のために働いています(これは私がPythonプログラマーではないので、ここには載せません。もっと良い方法が必要です)。

一般的に最後の日は超楽しいです、このポストが誰かが同じ楽しさを避けるのを助けることを願っています。

グイド

使い方 クロージャー ライブラリ

私たちはプロジェクトのパッケージをdojoからgoogle閉鎖に切り替えることを試みていますが、これまでのところ運がありませんでした。 ここでは、達成しようとしていることを示す簡単な例を示します。


<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script type="text/javascript" src="runtime/src/core/lib/goog-rev26/base.js"></script>
        <script>
            goog.require("foo.bar");
            function main() {foo.bar.echo("hello world")}
        </script>
    </head>
<body onload="main()">
</body>
</html>

それから/foo/bar.js私は持っています:


goog.provide("foo.bar");
foo.bar.echo = function(s) {console.debug(s);}

火かき棒で私が受け取るエラーは次のとおりです:

goog.require could not find: foo.bar
foo is not defined

Netタブを見ると、ファイルを取得するHTTPリクエストがありません。私は、closureライブラリがbar.jsを取得するスクリプトタグを生成することを期待していました。

助けて! ;)







いずれの方法でも、少なくとも開発用のバージョンでカスタムモジュールが動作するようにするには、googleのbase.jsファイルをインクルードした後、HTMLページのheadセクションに手動でjsファイルを含めることです。

<script type="text/javascript" src="js/closure/goog/base.js"></script>
<script type="text/javascript" src="js/closure/custom/custom.js"></script>
<script type="text/javascript" src="js/closure/custom/sub/sub.js"></script>
...

しかし、あなた自身で包摂の順序に気を付けるべきです。 それほど大きなカスタムファイルセットではうまく動作しません。 プロダクションバージョンでは、クローズライブラリのすべての利点を得るために、jsソースコンパイルを使用する方が良いです。




Related