【问题标题】:Using Linq.js with Durandal/Require.js将 Linq.js 与 Durandal/Require.js 一起使用
【发布时间】:2014-03-05 06:44:06
【问题描述】:

我已经完成了以下设置:

  1. 添加了以下脚本标签:

    <script src="Scripts/linq.js"></script>
    
  2. 在main.js中配置linq.js

    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,',        
        'linq': '../Scripts/linq'
    }
    // The ko in this project is already AMD
    , shim: {        
        linq : {
            exports: 'Enumerable'
        }
    }   
     });
    
  3. 尝试在我的一个视图模型 (shell.js) 中获取它的副本,如下所示:

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

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

我是新手,我有什么问题吗?

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

除了 shim 之外,我还需要创建自己的定义吗?我认为 Shim 应该是对全局变量进行定义的语法糖包装器?

【问题讨论】:

    标签: javascript requirejs durandal linq.js weyland


    【解决方案1】:

    在这种情况下不需要填充程序,其中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 requirejs.org/docs/errors.html#scripterror
    • 你能想出一个最小的 dFiddle (github.com/dFiddle/dFiddle-2.0) 来证明这个问题吗?
    • 我把脚本从路径信息中拉出来,让它被页面加载。这似乎可以解决问题。虽然我还不清楚我什么时候想使用垫片,以及在这种情况下是否合适。但是问题又来了。
    猜你喜欢
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多