阅读following question后,我将编译后的bootstrap JS插件文件包装在AMD模块中,如下所示:
define(['zepto'], function($){ ...Bootstrap pasted here... });
然后这就是我的main.js文件的配置样子:
require.config({
baseUrl: 'js',
paths: {
'zepto': 'lib/zepto',
'underscore': 'lib/underscore',
'backbone': 'lib/backbone',
'text': 'lib/text',
'bootstrap': 'lib/bootstrap'
},
shim: {
'zepto': {
exports: '$'
},
'underscore': {
exports: '_'
},
'backbone': {
deps: ['zepto', 'underscore'],
exports: 'Backbone'
}
}
});
require([
'app',
'zepto',
'underscore',
'backbone',
'bootstrap'
],
function(App){
//start the app
App.initialize();
});
但是在控制台中,我在bootstrap.js文件中收到以下错误:
Uncaught TypeError: undefined is not a function
即使将$传递到模块中,也似乎未定义$。完整包装的引导程序模块在here中可用。
我正在使用应该与Bootstrap兼容的zepto,并从垫片中导出$,所以看不到为什么这对我不起作用。
最佳答案
我通过在引导JS文件中添加以下代码行来解决此问题。
将window.jQuery
传递到修改后的函数中,以包括Zepto全局对象,就像window.jQuery || window.Zepto
此处有更多信息:
Zepto with Bootstrap