0

我从头开始我的项目结构。我正在使用 require.js、骨干网、下划线、引导程序等。我正在考虑使用 shim 配置来加载与 AMD 不兼容的骨干网、下划线等。但是,现在,我认为最好使用它们的 AMD(异步模块定义)兼容版本,因为它允许并行加载资源。但是,我在哪里可以找到 AMD 兼容的下划线、主干和引导程序的可靠来源?我可以放心,我会得到最新版本的主干、引导程序和下划线 AMD 兼容版本。他们会在以后造成任何休息吗?

总之,任何人都可以建议我使用它们的 AMD 兼容版本,或者推迟使用 shim 配置来加载它们的非 amd 版本以防止加载时间。我打算使用 require-jquery AMD。

4

3 回答 3

1

是的,它更好。我可以说,在使用 require 和骨干开发大型应用程序之后 - 它们可以很好地协同工作。使用r.js用于将您的应用程序 js 简化为单个文件的构建过程,因此显然不依赖于生产。作为对上述答案的回应,我们将它与 jasmine 集成为单元测试人员没有任何问题(我个人不会打扰单元测试,而是坚持使用行为测试)。

这是了解它如何组合在一起的一个很好的起点:http: //net.tutsplus.com/tutorials/javascript-ajax/a-requirejs-backbone-and-bower-starter-template/

虽然考虑jam作为一个包管理器或根本不考虑,并grunt创建构建任务等但仍然有用,只是不要把东西当作福音,自己试试吧!

于 2013-06-18T21:31:45.573 回答
1

我只能提供一种观点,但根据我的经验,在这个阶段,最好只是填充依赖项。我认为 amd 还没有被广泛采用,无法获得使用 amd 版本让所有东西都能很好地协同工作所需的那种支持。

特别是,我在测试(Jasmine)时遇到了问题,我的 Jasmine 测试将引用一个“jQuery”,而我的应用程序代码将引用另一个,因为两者都不是全局变量。我只是放弃并改回使用垫片,并设法让测试工作(尽管并非没有一些工作)。

不确定它是否会有所帮助,但这是我关于将 RequireJS 集成到 BackboneJS/Rails 堆栈中的个人笔记。如果您要测试客户端代码,可能会对存根依赖项的部分感兴趣。一路上碰到了好几个坑...

于 2013-05-14T14:01:51.573 回答
1

Personally I don't think using AMD version library is better. Because 1. rely on community to maintain the AMD version 2. use shim and export the global is better 3. you cannot expect all libraries have AMD version

I have spent hours dig bugging why the optimizely code via rjs says that Backbone is not found and had to remove some code in the backbone source to make it works.

In short, use shim.

于 2014-04-24T06:59:18.623 回答