私はちょうどこれに遭遇しました。今、あなたが参照した ReferenceErrors はnavigator
、window
、document
、 などのブラウザ オブジェクト用であると想定しています。その場合、これは 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 ローダーによって関数本体が実行されません。