ReferenceError:找不到变量:require at

wor*_*138 6 javascript node.js jasmine gruntjs

我有一个关于将茉莉花与Grunt一起使用的问题.我一直收到错误,

ReferenceError:找不到变量:require at

每当我运行我的茉莉花测试.这是我的Gruntfile.js的jasmine条目:

jasmine: {
      js: {
        src: jsFiles,
        options: {
          specs: 'tests/*_spec.js',
          helpers: 'tests/helpers/*',
          vendor: 'vendor/*'
        }
      }
    },
Run Code Online (Sandbox Code Playgroud)

我可以在没有要求的情况下运行虚拟测试,但是当我在测试中包含require时,我会收到require错误.

var testD = require('../src/events_to_actions');

describe("events_to_actions", function() {
  it("is dummy test", function() {
    expect(true).toEqual(true);
  });
});
Run Code Online (Sandbox Code Playgroud)

小智 7

我有同样的问题.只需安装此节点包并将此行添加到您的Gruntfile,并且需要再次开始工作.

https://github.com/cloudchen/grunt-template-jasmine-requirejs

jasmine: {
      js: {
        src: jsFiles,
        options: {
          specs: 'tests/*_spec.js',
          helpers: 'tests/helpers/*',
          vendor: 'vendor/*',
          template: require('grunt-template-jasmine-requirejs')
        }
      }
    },
Run Code Online (Sandbox Code Playgroud)


小智 5

@user3741597建议的解决方案可能有效,但有点倒退。

“grunt-template-jasmine-requirejs” 是为 RequireJS 编写的,它是一个 AMD 加载器。另一方面,您使用的是 CommonJS 语法。如果你想继续使用“grunt-contrib-jasmine”,那么你需要找到一个CommonJS模板,或者使用Jasmine内置节点支持的信息并采取不同的方法。

这篇文章也可能有所帮助。