2

何が原因なのかはわかりませんがjquery-ui、最適化後はうまくいかないようです。

最適化を行わないと、プロジェクトは正常に実行されます。$が含まれています$.ui。(これを開発と呼びましょう)

最適化後、依存する関数が存在しないjquery-uiため失敗します。$.ui

私は何時間も shim と require をいじっていましたが、結果は常に同じです (さらに悪いことに、$最適化されていないバージョンでも動作しますが、動作しません.

どのロジックが欠けていますか?


requirejs.config({
    baseUrl     : 'js',
    waitSeconds : 10,
    urlArgs     : 'cache='+Date.now(),

    paths: {
        "conf"              : "remix/config",
        "jquery"            : "lib/jquery",
        "jqueryUi"          : "lib/jquery.ui",
        "domReady"          : "lib/domReady",
        "bootstrap"         : "lib/bootstrap",
        "jsviews"           : "lib/jsviews"
    },

    // I've had many configurations. 
    // Basically, develop almost always works, optimized never works.
    shim: {
        "jqueryUi"  : {
            deps        : ['jquery']
        },
        "jsviews"   : {
            deps        : ['jqueryUi']
        },
        "bootstrap" : {
            deps        : ['jsviews']
        }
    }

});

require(['domReady!', 'jsviews', 'jqueryUi', 'bootstrap'], function() {
    console.log($);
    // Develop: $.ui exists
    // Optimized: $ exists, $.ui does not. 
    // (And jsviews only in some modules.)
});
4

1 に答える 1

-1

回答によると: https://stackoverflow.com/a/17536078/2463365および参照されたチュートリアル: Load jQuery UI with requireJS。私はちょうど追加しましたexports: '$'

shim: {
    "jqueryUi"  : {
        exports     : '$',
        deps        : ['jquery']
    },

そしてそれは動作します。

于 2014-12-01T11:57:25.100 に答える