【问题标题】:How to configure RequireJS (require.config()) with jasmine-node?如何使用 jasmine-node 配置 RequireJS (require.config())?
【发布时间】:2012-06-30 12:45:08
【问题描述】:

我有一个 init 文件,它提供了一个通过 require.config() 引导 RequireJS 的函数。配置最终(大部分)看起来像这样:

...

config =
    baseUrl: sysDir + 'lib/'
    paths:
        app: appDir + 'lib/'
        dep: sysDir + 'vendor/'
    deps: [
        'dep/underscore/underscore.min'
        'dep/jquery/jquery.min'
    ]

require.config config

这个文件在浏览器中使用,我也想在节点中使用它。我试图在助手中做同样的事情,但我运气不佳。由于规范在新的 VM 上下文中运行的方式,我不太确定该怎么做,也没有明显的方法可以将 jasmine-node 传递给您的 RequireJS 配置。

有什么想法吗?

【问题讨论】:

    标签: javascript node.js coffeescript requirejs jasmine


    【解决方案1】:

    我通过将 require 配置放入我的 specs 目录根目录下的 spec_helper.js 中来完成这项工作:

    define = require('requirejs');
    
    (function () {
        var baseUrl = __dirname + '/../smoke'
        console.log('Configuring requirejs with baseurl: ' + baseUrl)
    
        define.config({
            'nodeRequire': global.require,
            'baseUrl': baseUrl
        });
    })();
    

    不确定这是否真的能解决你的问题。

    【讨论】:

    • 正如我所说,我已经尝试过了,但它不起作用,因为每个规范都在新的 VM 上下文中运行。
    【解决方案2】:

    jasmine-node为requirejs提供示例项目:https://github.com/mhevery/jasmine-node#requirejs

    如果您将测试称为 > jasmine-node --runWithRequireJs --requireJsSetup tests/requirejs-setup.js tests,则可以在 requirejs-setup - 文件中添加配置设置。

    尽管如此,我还是遇到了 baseUrl 设置的问题。在 requirejs-wrapper-template.js 中,baseUrl 是相对于当前执行的测试文件进行操作和设置的,您可以在此处看到:

    if(alteredConfig.baseUrl){
        var base = baseUrl.replace(/\\/g, '/'),
            splitUrl = alteredConfig.baseUrl.replace(/\\/g, '/').split('/'),
            index = 0;
    
        for(; index < splitUrl.length; index++){
            if(splitUrl[index] === '..') {
                base = path.dirname(base);
            } else {
                base += '/' + splitUrl[index];
            }
        }
    
        alteredConfig.baseUrl = base;
    }
    

    这会导致我的 requirejs 配置中定义的路径出现问题。所以我只是注释掉了这个代码块。现在它对我来说效果很好。

    【讨论】:

      猜你喜欢
      • 2012-11-16
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多