RequireJS加载jquery-ui在优化后失败

时间:2014-10-30 12:34:18

标签: jquery-ui requirejs requirejs-optimizer

我不确定是什么导致这种情况,但jquery-ui似乎无法在优化后发挥作用。

没有优化,项目运行良好。 $包含$.ui。 (让我们称之为发展)

优化后,依赖jquery-ui的功能失败,因为$.ui不存在。

我一直在处理填充程序并需要几个小时,但结果总是相同的(或更糟糕的是,$甚至无法正常工作,尽管它仍适用于非优化版本。 / p>

我错过了什么样的逻辑?


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.)
});

1 个答案:

答案 0 :(得分:-1)

根据回答:https://stackoverflow.com/a/17536078/2463365并参考教程:Load jQuery UI with requireJS。 我刚刚添加了exports: '$'

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

它有效。