3

私はKendo UIバージョン2013.1.514RequireJSr.jsバージョン2.1.6)を使用しています

RequireJS私のプロジェクトは、標準のオンデマンド ロードで完全に実行されます。

しかし、オプティマイザーを使用しようとすると、Kendo がまったく読み込まれません。それらのいずれかを含めると、有名で刺激的なUncaught Error: Mismatched anonymous define() module:エラーが発生します。

これは私の構成です:

{
    "baseUrl": "../Scripts",
    "name": "../Scripts/js_modules/base_module.js",
    "include": [],
    paths: {
        k: "Frameworks/kendo-2013.1.514-fixed",
        jquery: "Frameworks/jQuery/jquery.min",
        jplugin: "Frameworks/jQuery",
        f: "Frameworks/"
    },
    shim: {
        'jquery.dataSelector': {
            deps: ['jquery'],
            exports: 'jquery.dataSelector'
        },

    },
    "exclude": [],
    "optimize": "none",
    "out": "built-base-modules.js"
}

base_module.js

define( function( require ) {

// Don't do anything with them.
// Just define them.

    require("jquery");
    require("k/kendo.core.min");
    //require("k/kendo.userevents.min");
    //require("kendoize/kendoize")
});

これが関連しているかどうかはわかりませんが、依存関係のトレースも正しく機能していないようです。(1 レベルの深さでは正常にトレースされますが、2 レベルの深さではトレースされません。問題が解決したかどうかを確認するために手動で と を追加しようとしましcore.minuserevents.min。)

剣道でこの問題を経験した人はいますか? それとも似たようなものでしょうか?既存の質問を確認しましたが、この設定に関連するものは見つかりませんでした。

必要に応じて追加情報を投稿できますが、詳細な console.log メッセージは、require.js 内のどこかでクラッシュしました。使用可能な構文エラーではありません。

追加情報

ページ自体の HTML/Javascript

    <script src="/Business/Scripts/require.js"></script>

<script>
    (function () {
        "use strict";

        var configObject = {
            shim: {
                'jquery.dataSelector': {
                    deps: ['jquery'],
                    exports: 'jquery.dataSelector'
                },
            },
            baseUrl: "http://760.j6.local:80/Business/Scripts",
                paths: {
                    app: "http://760.j6.local:80/Business",
                    k: "http://760.j6.local:80/Business" + "/Scripts/Frameworks/kendo-2013.1.514",
                    jquery: "http://760.j6.local:80/Business" + "/Scripts/Frameworks/jQuery/jquery.min",
                    jplugin: "http://760.j6.local:80/Business" + "/Scripts/Frameworks/jQuery",
                    f: "http://760.j6.local:80/Business" + "/Scripts/Frameworks/",
                }
            };

            requirejs.config(configObject);
        }());
</script>

    <script src="/Business/_build/built-base-modules.js"></script>
4

2 に答える 2

1

説明したのと同じ問題があります。require.js + kendo + 最適化により、ビルド プロセスが成功した後にまったく同じエラーが発生します。

ただし、上記のソリューションはサードパーティのコードを扱うため、私には適していません。別の解決策を探したところ、剣道全体をビルドから除外しても、実行時にダウンロードされることがわかりました。私は kendo.mobile.min.js を使用します。これにはすべての依存関係が含まれており、最適化されたプロジェクトの残りの部分とうまく連携します。その結果、アプリ全体で 3 つの js ファイル (require、optimized build、kendo) をダウンロードするだけで済みます。

つまり、剣道を別のリソースとしてロードする余裕がある場合は、ビルド構成に次を追加します。

{
    baseUrl: "...",
    exclude: ['kendo.min'],
    include: ['jquery'],
(...)
}
于 2014-02-24T13:58:58.013 に答える