2013-04-29 95 views
10

我是一个完全noob与茉莉花和RequireJS所以任何帮助表示赞赏。配置Grunt,Jasmine和RequireJS在一起

我们有以下的目录结构

/assets 
     /libs <- populated by Jam 
     /scripts 
/tests 

我试图建立茉莉花+步兵+ RequireJS但是运行我的测试中我不断收到以下错误,当我运行我的任务咕噜咕噜茉莉花我审查了RequireJS网站上的错误,但在我看来一切都已到位。

Error: scripterror: Illegal path or script error: ['scripts/MyModule'] 

这里是我的茉莉花设置在我gruntfile.js

jasmine: { 
    src: 'assets/scripts/**/*.js', 
    options: { 
     specs: 'tests/*spec.js', 
     template: require('grunt-template-jasmine-requirejs'), 
     templateOptions: { 
      requireConfig: { 
       baseUrl: '/assets', 
       paths: { 
       'jquery': 'libs/jquery/dist/jquery' 
       } 
      } 
     } 
    } 

这是一个死了简单的测试规范 :)

require(['scripts/MyModule'], function (myModule) { 
    'use strict'; 

    describe('A suite', function() { 
     it('should pass this test', function() { 
      expect(myModule).not.toBe(null); 
     }); 
    }); 
}); 

RequireJS工作正常,在我的项目,这里是我为此运行的设置...

<script> 
var require = 
{ 
    baseUrl: '/assets' 
}; 
</script> 
<script src="/assets/libs/require.js"></script> 

我在哪里出错了,我该怎么办才能修复它?

回答

10

嗯,我得到了它运行,不得不做出的茉莉花配置以下变化在我Gruntfile.js

baseUrl: './assets/' 

它需要一步一个目录了。

+0

你可以接受你自己的答案。这对未来的参考很有用! – thomaux 2013-06-12 11:36:48

+0

对于后人:'.'表示当前目录,'..'在一个目录中。如果你用'/'开始一个路径,它将会进入根级。在客户端意味着根URL,在服务器端是文件系统根路径。 – Spoike 2013-08-26 09:10:56

2

当您指定Grunt Jasmine's使用/assets作为您的基本路径时,它将查看您绝对的/assets路径,这意味着您将会咕to地看着您的文件系统根路径。