RequireJS:正确添加全局依赖关系的方法

时间:2013-07-04 15:01:04

标签: knockout.js requirejs durandal

我正在使用基于Durandal的解决方案。我对需要的东西很新(所以如果我说的是垃圾,请纠正我)

define(['durandal/http', 'durandal/app', 'durandal/plugins/router', 'durandal/plugins/notify'], function (http, app, router, notify) {
    var userInfo = {
        AccessFrom: ko.observable(),
        AccessTo: ko.observable()
        }    
...
});

我出于好奇心(虽然这对我来说是全新的)来运行我的javas cript文件JSHint ...它让我意识到以下内容。

我似乎得到了很多“'ko'没有定义”的警告。

很明显,因为淘汰赛没有作为依赖者传递......我不确定如何完全?或者我必须这样做吗?

我的外部库都被添加到另一个脚本文件夹中以进行捆绑&压缩目的,我不认为在每个依赖文件中添加'something / something / something / scripts / knockout'是100%正确的...(虽然它会起作用我会假设)

在require java脚本函数的上下文中,是否有标准的方法来处理第三方库或全局使用的库,如jquery / knockout ......或者这只是一厢情愿/混乱的想法?

1 个答案:

答案 0 :(得分:0)

Durandal 1.2预计knockoutjs,jquery和requirejs会在全球范围内包含在内,只需将它们包含在您的页面中

<script type="text/javascript" src="knockout.js"></script>
<script type="text/javascript" src="jquery.js"></script>

因此,在定义AMD模块时,您不必担心将它们包含为依赖项。 //

*的 修改 *

RainerAtSpirit指出,在即将推出的Durandal 2.0中,默认情况下,ko和jquery将作为AMD模块加载。