在一个最小的应用程序中使用带有Backbone的RequireJS,我总是会得到
Uncaught Error: Mismatched anonymous define() module
即使应用程序继续工作。下面是:https://assets.site44.com/admin/
我在index.html中包含了jQuery、下划线和 Backbone.js ,因为我想缩短每个视图/模型中的define()样板。
https://assets.site44.com/admin/js/main.js包含
var l = console.log.bind(console)
var app
//l("AA")
require.config({
paths: {
// Major libraries
/*jquery: 'libs/jquery/jquery-min',
underscore: 'libs/underscore/underscore-min', // https://github.com/amdjs
backbone: 'libs/backbone/backbone-min', // https://github.com/amdjs
* /
// Require.js plugins
text: 'text'
}
})
function initApp() {
console.log("BB")
require([
'views/AppView'
], function(AppView){
l("CC")
app = new AppView()
$("#app").html(app.render())
})
}
$(document).ready(initApp)
我无法从文档或已回答的问题中找出问题:Mismatched anonymous define() module
谢谢你
3条答案
按热度按时间qfe3c7zg1#
我在index.html中包含了jQuery、下划线和 Backbone.js ,因为我想缩短每个视图/模型中的define()样板。
如果你有兴趣的话,你会注意到最上面的链接是RequireJS的FAQ,解释了这一点
如果您在HTML中手动编写script标记的代码,以使用匿名define()调用加载脚本,则可能会发生此错误。
--编辑
如果你使用grunt,你可以使用grunt-generate来根据你自己的自定义模板轻松地创建模块,当样板文件过载威胁要毁了你的一天时:)
免责声明:我写的Grunt插件。
vxf3dgd42#
如果您在HTML中手动编写script标记的代码,以使用匿名define()调用加载脚本,则可能会发生此错误。
如果您在HTML中手动编写script标记以加载具有几个命名模块的脚本,但随后尝试加载的匿名模块最终与手动编写的script标记所加载的脚本中的某个命名模块同名。
ia2d9nvy3#
找到了如何摆脱它:直接使用require(),而不是在ready处理程序中使用