2013-06-03 6 views
6

私はここにマルチシム共有パターンを次のようだ: https://github.com/requirejs/example-multipage-shimrequireJS - ミスマッチ匿名の定義()モジュールマルチシムで

私は同じcommon.jsを使用して、非常に類似しており、簡単なセットを持っています:

<script src="js/library/requirejs/require.min.js"></script> 
<script> 
require(['./js/config/common'], function (common) { 
    //go on... 
}); 
</script> 

すべての負荷罰金と私は必要とクロージャ内での操作を実行し続けることができますが、私は上記のコードで不一致匿名定義()モジュール文句Firefoxでエラーを得続けます。それがいかにシンプルで、私が模範パターンに従っているかを考えれば、なぜ私がそれを得ているのかちょっと混乱しています。 define()はどこにも使用していません。過去24日間に何かが変更されましたか?(複数ページのgitリポジトリが更新されたので)

+0

問題を説明する自己完結型のJSFiddleがありますか?あなたはそれが "かなり正確に"その例のようだと言っていますが、**正確には "かなり"です:-) – explunit

+0

私は巨大なプラットフォームで作業しています。それはうまく動作します。それで、ページ上の何か他のものとの間に問題や葛藤があるかもしれないと私は信じています。しかし、common.jsに空のdefine(function(){})を置くだけで、requirejs.config()を参照するとすぐに(argsがなくても)エラーがスローされず、エラーが発生します。 .. – Dan

+0

OK、匿名でrequirejsを使用したときに問題が発生するという点で、この問題はここの問題と同じであると私は信じています。http://stackoverflow.com/questions/15371918/mismatched-anonymous-define-moduleモジュール定義。ドキュメントは、これはオプティマイザを使用しないときの問題であり、オプティマイザを使用してそれを修正すると述べています。問題は - 開発中、つまり最適化されていない環境で作業しているとき、どのくらい正確にその周りを回ることになっていますか? – Dan

答えて

7

回答がうまくいけば、それが誰かの助け、これだった:

これは大きなプラットフォームだった考えると、他のものの多くは(私たちはゆっくりと移行している)必要が流れの外にロードされていました。

これらのアセットの一部(jquery 1.10、spin.jsなど)は、AMDと互換性があり、define()を呼び出していました。 spin.jsのケースでは、匿名でdefine()を呼び出していましたが、これは解決文書の匿名ミスマッチエラーの2番目のポイントで説明されているように、読み込みをトリップしていました。

良い悲しみ。

+0

「違反」ファイルにIDを付けましたか? –

+0

サードパーティのソースを変更したくないため、弾丸を少しだけ修正して構造を変更しました。問題のあるライブラリのロードをRequireJSフローからすべて削除しました。ライブラリをフローの使用のみに制限しました。 – Dan

+0

問題のライブラリをどのように必要とするかを理解しています。最初の例はわかりませんが、私はそれが必要な解決策であると思います。 - あなたは「RequireJSのフローから問題のライブラリをすべて削除しました」_と言っています。あなたの最初の質問から私はあなたのrequrejSの流れとは別に違反しているJSファイルを考えました。 (私の状況と同じように)。私は彼らを連れて行くことはできません。 –

0

何が起こっているのかははっきりしています。モジュールをロードしようとしていますが、common.jsにはrequire.configのみがあり、モジュールはありません。したがって、RequireJS(Firefoxではなく)がエラーをスローします。あなたの共通のJSに定義を含めると、エラーは消えるはずです。

// common.js stuff... 
define({}); 
+0

それはそうではないのですが、RequireJSはロードするために厳密にAMD定義を必要としません。また、コードはサンプルパターンでモジュールラップされておらず、これはRequireJSプロジェクトに近い人が記述したものです。最後に、私はそれを試して、まだエラーが発生します。試してくれてありがとう! – Dan

関連する問題