Javascript 将Linq.js与Durandal/Require.js一起使用

Javascript 将Linq.js与Durandal/Require.js一起使用,javascript,requirejs,durandal,linq.js,weyland,Javascript,Requirejs,Durandal,Linq.js,Weyland,我已完成以下设置: 添加了以下脚本标记: <script src="Scripts/linq.js"></script> 尝试在我的一个viewmodel(shell.js)中获取它的副本,如下所示: define(['plugins/router', 'durandal/app','linq'], function (router, app, linq) 使用weyland优化构建,但我得到: 错误1 eNONT,没有这样的文件或目录 'C:\Project\

我已完成以下设置:

  • 添加了以下脚本标记:

    <script src="Scripts/linq.js"></script>
    
  • 尝试在我的一个viewmodel(shell.js)中获取它的副本,如下所示:

    define(['plugins/router', 'durandal/app','linq'], function (router, app, linq) 
    
  • 使用weyland优化构建,但我得到:

  • 错误1 eNONT,没有这样的文件或目录 'C:\Project\build\App\linq.js'C:\Project\

    我是新来的,我有什么不对劲吗

    我认为垫片应该指向全局变量,我这样做了


    除了垫片之外,我还需要创建自己的定义吗?我认为Shim应该是一个语法上的糖衣包装器,覆盖了一个全局变量的定义?

    在这种情况下不需要Shim,因为
    linq
    是通过脚本标记包含的。在通过require.js加载
    main.js
    之前,只需确保通过脚本标记加载
    linq
    。接下来删除配置项和依赖项

    requirejs.config({
        paths: {
            'text': '../Scripts/text',
            'durandal': '../Scripts/durandal',
            'plugins': '../Scripts/durandal/plugins',
            'transitions': '../Scripts/durandal/transitions',
            'knockout': '../Scripts/knockout-2.3.0',
            'jquery': '../Scripts/jquery-1.9.1,'
            }
        }   
    });
    
    
    define(['plugins/router', 'durandal/app'], function (router, app){...
    

    这样就不需要配置weyland来排除它。

    Rainer,我更喜欢让requirejs尽可能包含它,然后直接引用脚本。删除脚本标记会导致另一个错误(因为它试图解决“linq”):“加载组合模块(viewmodels/shell)失败。详细信息:脚本错误:linq”您能想出一个最小的dFiddle()来说明问题吗?我将脚本从路径信息中拉出,并让页面加载它。这似乎奏效了。虽然我还不清楚我什么时候想用垫片,在这种情况下是否合适。但问题是下次再说。
    requirejs.config({
        paths: {
            'text': '../Scripts/text',
            'durandal': '../Scripts/durandal',
            'plugins': '../Scripts/durandal/plugins',
            'transitions': '../Scripts/durandal/transitions',
            'knockout': '../Scripts/knockout-2.3.0',
            'jquery': '../Scripts/jquery-1.9.1,'
            }
        }   
    });
    
    
    define(['plugins/router', 'durandal/app'], function (router, app){...