为了论证,我想默认加载Zepto,但是使用jQuery代替IE(所有版本)。
使用Require.js时,这样做是否明智?
答案 0 :(得分:0)
有两种方法:“正确”,但长而“手”但很短。
“正确”但很长:
require.config({
paths: {
jquery:'path/to/jquery'
, zepto: 'path/to/zepto'
}
})
var iNeed = []
if (!('__proto__' in {})) {
// This is IE
iNeed.push('jquery')
} else {
// Everything else
iNeed.push('zepto')
}
require(iNeed, callback)
“手掌”但短暂:
var AMDConfig = {
paths: {
jquery:'path/to/zepto'
}
}
if (!('__proto__' in {})) {
// This is IE
AMDConfig.paths.jquery = 'path/to/jquery'
}
require.config(AMDConfig)
require(['jquery'], callback)
“手法”不是“正确”的原因是你正在掩盖“jquery”背后的真实本质随着你的应用程序的增长,一些jQuery插件可能会出现并且无法在zepto上工作,但它我们不会立即清楚问题是什么。
“正确”解决方案在一个方面也是一个问题 - 如果您动态定义需求数组,那么像r.js
这样的构建工具将无法找到您放在那里的其他依赖项。
你的选择..