0

升级到 jQuery 2.0 后我遇到了问题 我的应用程序停止在 IE8 和更少版本上运行。该应用程序当前使用 Require.JS 来模块化我的代码。

我在这里找到了一个非常好的解决方案,用于对浏览器进行条件检查。但我的应用程序也使用此处描述的优化来缩小代码。所以我有一个 app.build.js,如下所示:

({
appDir:         '../',
baseUrl:        'js/',
dir:            '../../v3-build',
locale:         'en-us',
paths: {
    'modernizr':                'libs/modernizr-2.5.3',
    'jQuery':                   'libs/jquery/jquery-2.0.0',
    'underscore':               'libs/underscore-1.4.4',
    'backbone':                 'libs/backbone-0.9.9',
    'bootstrap':                'libs/bootstrap/bootstrap'        

    // Application - bootstrap for frontend app
    'application':              'application'
},
shim: {
    'jQuery': {
        exports:                '$'
    },

    'underscore': {
        deps:                   ['jQuery'],
        exports:                '_'
    },

    'backbone': {
        deps:                   ['jQuery', 'underscore'],
        exports:                'Backbone'
    },

    'application':              ['jQuery']
},
optimize:                   'uglify2',
modules:        [
    {
        name:       'main'
    }
]

})

现在如何在此处添加对 jquery 路径的检查?

4

1 回答 1

2

如果您想在运行时决定 jQuery 版本,那么您不能将它包含在 r.js 创建的包中。您需要使用特殊的“empty:”指令告诉优化器将其排除在外,例如:

paths: {
    jquery: "empty:"
}

不确定你是否为所有这些麻烦节省了很多带宽,但我想如果你在运行时给他们一个 CDN 路径应该会有所帮助。

于 2013-05-16T18:29:44.713 回答