我目前正在尝试Hot Towel SPA Template,如果我正确理解的话,该库将为Durandal定义这两个库。我无法弄清楚这两个调用之间的确切区别:
// Durandal 2.x assumes no global libraries. It will ship expecting
// Knockout and jQuery to be defined with requirejs. .NET
// templates by default will set them up as standard script
// libs and then register them with require as follows:
define('jquery', function () { return jQuery; });
define('knockout', ko);
define('knockout', function () => { return ko; });?
会做同样的事情吗? 最佳答案
对于前者,我们正在定义一个名为“ jquery”的模块,该模块在全局名称空间中定义。
对于后者,我们正在定义一个模块,在require路径中定义了对该模块的引用。
两种情况的效果是相同的。 Hot Towel的创建者John Papa建议不要使用require定义第三方模块。相反,只能以这种方式定义自己的模块。当然,jQuery和Knockout在Durandal框架中是例外,因为它们是Durandal框架的一部分。
但是John给出建议的原因是由于第三方框架是如何设计的所有技术细节。有时您必须匀场,有时则不必。有时您必须返回在窗口上定义的内容,有时则不必。有时存在顺序依赖关系或辅助库依赖关系(它们又具有各自的特质)。
关于javascript - 是什么使这两个require.js调用彼此不同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24342192/