我从头开始创建项目结构。我正在使用require.js,主干,下划线,bootstrap等。我正在考虑使用shim配置加载非AMD兼容的主干,下划线等。但是,现在,我认为最好使用它们的AMD(异步模块定义)兼容版本,因为它允许并行加载资源。但是,我在哪里可以找到AMD兼容的下划线,骨干和引导程序的可靠来源?我可以放心,我将获得最新版本的骨干,bootstrap和下划线AMD兼容版本。他们会在以后休息吗?
总之,任何人都可以建议我使用它们的AMD兼容版本,或者说要使用shim config加载非amd版本来加载时间。我打算使用require-jquery AMD。
答案 0 :(得分:1)
我只能提供一种观点,但根据我的经验,在这个阶段,最好只是填充依赖关系。我并不觉得amd被广泛采用,但是为了获得所需的支持,使用amd版本可以很好地协同工作。
特别是,我遇到了测试问题(Jasmine),我的Jasmine测试将指向一个“jQuery”,我的应用程序代码将引用另一个,因为它们都不是全局变量。我只是放弃并切换回使用填充程序,并设法让测试工作(虽然不是没有一些工作)。
不确定它是否会有所帮助,但这是我的personal notes将RequireJS集成到BackboneJS / Rails堆栈中。如果您要测试客户端代码,可能会对stubbing dependencies部分感兴趣。我一路上遇到了很多障碍......
答案 1 :(得分:1)
是的,它更好。我可以说,在开发了具有require和backbone的大规模应用程序之后 - 它们可以很好地协同工作。使用使用r.js
的构建过程将您的应用程序js简化为单个文件,因此显然不依赖于生产。我们将茉莉花作为单元测试仪与上面的答案相结合没有任何问题(不是我个人会打扰单元测试,而是坚持使用行为测试)。
这是一个很好的起点,可以了解它是如何组合在一起的:http://net.tutsplus.com/tutorials/javascript-ajax/a-requirejs-backbone-and-bower-starter-template/
虽然将jam
视为软件包管理器或者根本不考虑,grunt
创建构建任务等但仍然有用,不要将其作为福音来对待自己尝试!
答案 2 :(得分:1)
我个人认为使用AMD版本库更好。 因为 1.依靠社区来维护AMD版本 2.使用垫片和出口全球更好 3.你不能指望所有的库都有AMD版本
我花了几个小时挖掘窃听为什么通过rjs的优化代码说没有找到Backbone并且必须删除骨干源中的一些代码才能使其工作。
简而言之,请使用垫片。