Javascript Backbone.js和Require.js工具r.js
因此,在我的TODO应用程序中,我使用了主干和require.js。一切都很酷。我将所有模型、视图和集合分离为单个文件,并使用require.js加载它们。在我尝试使用console require.js optimizer.js将所有文件连接到一个文件之后。结果,我得到了一个包含所有lib和类的文件。但当我尝试运行时,我遇到了一个错误,即主干未定义。我检查了文件,看到r.js生成了下一个东西: 1.首先,它将主干源添加到app-build.js文件中,然后放置下一个字符串Javascript Backbone.js和Require.js工具r.js,javascript,backbone.js,requirejs,r.js,Javascript,Backbone.js,Requirejs,R.js,因此,在我的TODO应用程序中,我使用了主干和require.js。一切都很酷。我将所有模型、视图和集合分离为单个文件,并使用require.js加载它们。在我尝试使用console require.js optimizer.js将所有文件连接到一个文件之后。结果,我得到了一个包含所有lib和类的文件。但当我尝试运行时,我遇到了一个错误,即主干未定义。我检查了文件,看到r.js生成了下一个东西: 1.首先,它将主干源添加到app-build.js文件中,然后放置下一个字符串 define("li
define("lib/backbone", function(){});
因此,我在窗口中有主干变量,但在我的模块中,我以require.js的方式使用它
define('models/todo'、['jquery'、'underline'、'lib/backbone']、函数($,\ux,backbone){
没有全局变量,因此我的模块中的主干局部变量未定义。
下划线.js的同样问题。R.js以同样的方式导入它
所以,问题是。将来如何避免这些libs的问题,或者现在如何解决这个问题?一些技术?您可能需要使用一个垫片,因为根据RequireJS的主干要求主干位于基本url目录中。在您的情况下,它似乎位于/lib中。根据您使用的RequireJS版本,您可以您不必确保您使用的库与AMD兼容 在您的requireJS配置中:
shim: {
backbone: {
deps: ["underscore", "jquery"],
attach: "Backbone"
},
underscore: {
attach: "_"
}
}
您可能需要使用垫片,因为RequireJS要求主干位于基本url目录中。在您的情况下,它似乎位于/lib中。根据您使用的RequireJS版本,您只需确保您使用的库与AMD兼容 在您的requireJS配置中:
shim: {
backbone: {
deps: ["underscore", "jquery"],
attach: "Backbone"
},
underscore: {
attach: "_"
}
}
这部分对我来说不清楚:“不作为全球性的”。你能重新措辞或扩展吗?可能是一个拼写错误。这部分对我来说不清楚:“不作为全球性的”。你能重新措辞或扩展吗?可能是一个拼写错误。