Javascript 带requirejs的主干
我正在构建一个复杂的web应用程序,并尝试使用带有主干的requirejs。我发现backbonejs是一个非AMD框架,它限制我使用现成的requirejs 我在互联网上进行了研究,发现有一些补丁可以使主干AMD兼容 如果以这种方式进行修补是无问题设置,请提供指导。在应用程序开发过程中,我是否会因为修补backbonejs中的核心文件而遇到任何问题Javascript 带requirejs的主干,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,我正在构建一个复杂的web应用程序,并尝试使用带有主干的requirejs。我发现backbonejs是一个非AMD框架,它限制我使用现成的requirejs 我在互联网上进行了研究,发现有一些补丁可以使主干AMD兼容 如果以这种方式进行修补是无问题设置,请提供指导。在应用程序开发过程中,我是否会因为修补backbonejs中的核心文件而遇到任何问题 如果这是一个愚蠢的问题,我道歉:)不,这不是一个愚蠢的问题。到目前为止,我们实际上已经做到了这一点,并且工作得很好:) 您可以按照以下指南进行操作
如果这是一个愚蠢的问题,我道歉:)不,这不是一个愚蠢的问题。到目前为止,我们实际上已经做到了这一点,并且工作得很好:) 您可以按照以下指南进行操作:
别忘了阅读关于用Jasmine进行单元测试的章节。很好的组合。不,这不是一个愚蠢的问题。到目前为止,我们实际上已经做到了这一点,并且工作得很好:) 您可以按照以下指南进行操作:
别忘了阅读关于用Jasmine进行单元测试的章节。非常好的组合。在Require.js 2.0之前,您必须对主干网进行修补,以符合AMD标准。您可以在github上找到一些兼容AMD的主干分叉(例如)。幸运的是,Require.js 2.0+通过使用Shim配置添加了对加载不兼容AMD的脚本的支持。例如:
requirejs.config({
shim: {
"backbone": {
deps: ["underscore", "jquery"],
exports: "Backbone"
}
},
paths: {
// as usual
});
在Require.js2.0之前,您必须对主干网进行修补,使其符合AMD标准。您可以在github上找到一些兼容AMD的主干分叉(例如)。幸运的是,Require.js 2.0+通过使用Shim配置添加了对加载不兼容AMD的脚本的支持。例如:
requirejs.config({
shim: {
"backbone": {
deps: ["underscore", "jquery"],
exports: "Backbone"
}
},
paths: {
// as usual
});
你为什么需要AMD?Javascript应用程序中的AMD会增加很多复杂性,高估对技术库的需求并不罕见。也很容易忽略早期组织/模块化代码的需要,然后突然发现自己有一堆难以管理的意大利面代码。AMD使得将代码分成不同的模块变得更加容易,这在使用主干网这样的框架时是一个优势(我认为)。为什么需要AMD?Javascript应用程序中的AMD会增加很多复杂性,高估对技术库的需求并不罕见。也很容易忽略早期组织/模块化代码的需要,然后突然发现自己有一堆难以管理的意大利面代码。AMD使得将代码分成不同的模块变得更加容易,这在使用主干这样的框架时是一个优势(我认为)。请听你的建议:)你能帮我理解依赖项的填充是什么意思吗?@MrinalPurohit你可以试试我的答案,只需在requirejs.config的properties参数中插入一个垫片属性。@MrinalPurohit当您正在加载的某些模块依赖于其他模块时,您可以通过垫片来实现这一点。或者当您需要它们导出访问器参数时。请看一下Requirejs文档:请参考您的建议:)您能帮助我理解填充依赖项的含义吗?@MrinalPurohit您可以试试我的答案,只需在Requirejs.config的properties参数中插入一个shim属性。@MrinalPurohit当您正在加载的某些模块依赖于其他模块时,您可以通过垫片来实现这一点。或者当您需要它们导出访问器参数时。看看Requirejs文档:是的,你是正确的。我研究过。只是想知道垫片的实际含义。垫片配置的含义是什么。shim的灵感来自use.js,您可以看看它的源代码,了解一下:此外,datatables库与AMD兼容吗?或者我需要填充这个依赖关系,因为我以前没有使用过datatables库,但它似乎不符合AMD。基本上,当您需要在
define
函数的参数中提供任何不符合AMD的库时,您需要对其进行填充。是的,您是正确的。我研究过。只是想知道垫片的实际含义。垫片配置的含义是什么。shim的灵感来自use.js,您可以看看它的源代码,了解一下:此外,datatables库与AMD兼容吗?或者我需要填充这个依赖关系,因为我以前没有使用过datatables库,但它似乎不符合AMD。基本上,当您需要在define
函数的参数中提供任何不符合AMD的库时,您都需要对其进行填充。