7

RequireJSを使用してブラウザモジュールをロードしようとしていますが、興味深い問題が発生しました。

a私はという名前の3つのモジュールを持ってbおりc、これらの単純なソースコードを持っています:

a.js

define(['./b', './c'], function(c, b) {
 console.log('A IS LOADED!');

 return 'A';
});

b.js

define(function() {
 console.log('B IS LOADED!');

 return 'B';
});

c.js

define(function() {
 console.log('C IS LOADED!');

 return 'C';
});

モジュールaを単独でロードすると、すべてが正常に機能し、次のコードが実行されて「A」が返されます。

require(['./a'], function(a) { 
    console.log(a); // 'A'
});

しかし、2つの異なるモジュールが必要な場合、そのうちの1つはすでにロードされています。

require(['./a', './c'], function(a, c) { 
    console.log(a, c);
});

RequireJSはエラーになります:

C IS LOADED!
B IS LOADED!
require.js load timeout for modules: ./c 

明らかにすでにロードされている場合。

誰かが以前にこの問題に遭遇したことがありますか?どうすれば解決できますか?

4

1 に答える 1

0

RequireJS Web サイト ( http://requirejs.org/docs/errors.html#timeout ) によると:

考えられる原因と修正:

  • リストされたモジュールの 1 つでスクリプト エラーが発生しました。ブラウザのエラー コンソールにスクリプト エラーが表示されず、Firebug を使用している場合は、Chrome や Safari などの別のブラウザでページを読み込んでみてください。スクリプト エラーが Firebug に表示されないことがあります。

  • モジュールのパス構成が正しくありません。ブラウザの開発者ツールの「ネット」または「ネットワーク」タブをチェックして、モジュール名にマップされる URL の 404 があるかどうかを確認します。スクリプト ファイルが正しい場所にあることを確認します。場合によっては、パス構成を使用して、スクリプトの URL 解決を修正する必要があります。

于 2011-12-13T21:00:47.707 に答える