优化代码时使用JavaScript和Require.JS选择jQuery 1.9或2.0
在升级到jQuery2.0后,我的应用程序在IE8及以下版本上停止工作,我遇到了一些问题。应用程序当前使用Require.JS模块化我的代码 我找到了一个非常好的浏览器条件检查解决方案。但我的应用程序也使用了所描述的优化来缩小代码。因此,我有一个app.build.js,它如下所示:优化代码时使用JavaScript和Require.JS选择jQuery 1.9或2.0,jquery,requirejs,Jquery,Requirejs,在升级到jQuery2.0后,我的应用程序在IE8及以下版本上停止工作,我遇到了一些问题。应用程序当前使用Require.JS模块化我的代码 我找到了一个非常好的浏览器条件检查解决方案。但我的应用程序也使用了所描述的优化来缩小代码。因此,我有一个app.build.js,它如下所示: ({ appDir: '../', baseUrl: 'js/', dir: '../../v3-build', locale: 'en-us',
({
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路径添加检查 如果希望在运行时确定jQuery版本,则不能将其包含在r.js创建的包中。您需要告诉优化器使用特殊选项将其删除,例如:
paths: {
jquery: "empty:"
}
我不确定您是否为所有这些麻烦节省了大量带宽,但我想如果您在运行时为他们提供一个CDN路径,应该会有所帮助。为什么不使用jQuery 1.9,以便获得所需的IE支持?确保应用程序针对多个版本的资产运行是没有意义的。是的,我知道。这是我想到的第一个解决方案。但只是想知道是否有办法做到这一点