0

はい、私はこれがここで無限に求められていることを知っています.requirejsを使用する場合、define()を呼び出すものはすべて、次のように単一のスクリプトタグを介してロードする必要があるという一般的なルールをすでに知っています:

<script src="js/lib/require.js" data-main="js/main"></script>

しかし、この一般的なエラーに関して提供される一般的なアドバイスは、表面上は非常に単純に見える特定の問題を解決するには不十分な立場にいることに気づきました。

angular、requirejs、および WinJS (興味深いものにするため) のアプリに取り組んでおり、このエラーで問題が発生しました。私のメインの html ファイルは、実際には別のスクリプト タグを使用して他のいくつかの JavaScript ソース ファイルをロードしますが、どれも define() を呼び出しません。私がチェックしました。2回。よし、3回。 アプリ内の他のすべての JS ソース ファイルは、上記のような単一のスクリプト タグを介して読み込まれます。それでも、まだこのエラーが発生します。

各アプリ モジュールに requirejs 識別子を付けてみました。

define('myModule', ['dep1', 'dep2', etc.], function(dep1, dep2) {
    return angular.module('app.mymod', ['winjs', etc.]);
});

ただし、このアプローチでは、上記のように定義された角度モジュールに依存する角度モジュールはその依存関係を解決できません (requirejs は完全に満足しています)。

requirejs の外部にロードされる 3 つの JS ファイルは次のとおりです。

<script src="//Microsoft.WinJS.2.0/js/base.js"></script>
<script src="//Microsoft.WinJS.2.0/js/ui.js"></script>
<script src="js/lib/dynamic-content-shim.js"></script>

後者は WinJS ランタイムにパッチを適用して、動的コンテンツの作成を可能にします。WinJS ランタイムは実際には定義関数を独自の名前空間で公開しますが、requirejs とはまったく関係ありません。

それで、何が得られますか?

4

0 に答える 0