Javascript 如何使用jasmine节点配置RequireJS(require.config())?

Javascript 如何使用jasmine节点配置RequireJS(require.config())?,javascript,node.js,coffeescript,requirejs,jasmine,Javascript,Node.js,Coffeescript,Requirejs,Jasmine,我有一个init文件,它提供了一个函数,通过require.config()引导RequireJS。配置结果(大部分)如下所示: ... config = baseUrl: sysDir + 'lib/' paths: app: appDir + 'lib/' dep: sysDir + 'vendor/' deps: [ 'dep/underscore/underscore.min' 'dep/jquer

我有一个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环境中运行规范的方式,我真的不确定该做什么,也没有明显的方法将您的RequireJS配置传递给jasmine节点


有什么想法吗?

我将require配置放入spec_helper.js中,放在我的specs目录的根目录下,从而实现了这一点:

define = require('requirejs');

(function () {
    var baseUrl = __dirname + '/../smoke'
    console.log('Configuring requirejs with baseurl: ' + baseUrl)

    define.config({
        'nodeRequire': global.require,
        'baseUrl': baseUrl
    });
})();

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

jasmine node为requirejs提供了一个示例项目:

如果调用测试,如
>jasmine节点--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;
}
if(alteredConfig.baseUrl){
var base=baseUrl.replace(/\\\/g,'/'),
splitUrl=alteredConfig.baseUrl.replace(/\\\/g,“/”).split(“/”),
指数=0;
对于(;index

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

正如我所说,我已经尝试过了,但它不起作用,因为每个规范都是在新的VM环境中运行的。