4

私の Dojo ビルドでは、いくつかのサード・パーティー・ライブラリーを取り込んでいます。

ビルド プロセスを進めると、ReferenceErrors によるエラーが発生します。

これで問題ありません。意味あり。

ただし、参照されているものについて Dojo ビルド・プロセスに伝えたいと思います。本質的に、これはクロージャー コンパイラに extern を渡すことに似ています。

したがって、私の質問: コード・ベースから推測できない参照について Dojo ビルド・プロセスに伝えるにはどうすればよいですか?

これは Dojo 1.8 を使用しています

4

1 に答える 1

4

私はちょうどこれに遭遇しました。今、あなたが参照した ReferenceErrors はnavigatorwindowdocument、 などのブラウザ オブジェクト用であると想定しています。その場合、これは Dojo ビルド プロセス自体によって引き起こされた問題です。ビルドは、ブラウザのグローバル オブジェクトが定義されていない Rhino 内で実行されている dojo.js によって実行されるためです。これは dojo/Rhino のエラーであり、クロージャ コンパイラ エラーではないため、これを変更するためにクロージャに渡せるものはありません。たとえば、次のようなスクリプト

(function(){
    window.alert("hello");
})();

Dojo レイヤーに含まれていると、Dojo ビルドが壊れます。dojo AMD ローダーがスクリプトの依存関係を上記のように解決すると、関数の本体が実行され、Rhino には window が存在しないため、ReferenceError が発生します。

これを回避するには、スクリプトを AMD モジュールとしてラップします。

define([], function(){
    window.alert("hello");
});

そして、Dojo のビルド中に AMD ローダーによって関数本体が実行されません。

于 2013-01-09T20:22:05.510 に答える