Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带requirejs的主干_Javascript_Backbone.js_Requirejs - Fatal编程技术网

Javascript 带requirejs的主干

Javascript 带requirejs的主干,javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,我正在构建一个复杂的web应用程序,并尝试使用带有主干的requirejs。我发现backbonejs是一个非AMD框架,它限制我使用现成的requirejs 我在互联网上进行了研究,发现有一些补丁可以使主干AMD兼容 如果以这种方式进行修补是无问题设置,请提供指导。在应用程序开发过程中,我是否会因为修补backbonejs中的核心文件而遇到任何问题 如果这是一个愚蠢的问题,我道歉:)不,这不是一个愚蠢的问题。到目前为止,我们实际上已经做到了这一点,并且工作得很好:) 您可以按照以下指南进行操作

我正在构建一个复杂的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的库时,您都需要对其进行填充。