Karma错误:require未定义

use*_*798 1 qunit ember.js karma-runner

我使用karma和qunit来测试一个emberjs应用程序.karma.conf.js文件有这段代码用于链接我的项目库

files: [
    "app/bower_components/jquery/jquery.js",
    "app/bower_components/mockjax/jquery.mockjax.js",
    "app/bower_components/handlebars/handlebars.js",
    "app/bower_components/ember/ember.js",
    "app/bower_components/ember-data/ember-data.js",
    "app/bower_components/bootstrap-sass-official/vendor/assets/javascripts/bootstrap.js",
    "app/scripts/app.js",
    "tests/test.js"
],
Run Code Online (Sandbox Code Playgroud)

我的app.js是这样的:

var MyApp = window.MyApp = Ember.Application.create();

require('scripts/controllers/*');
require('scripts/store');
require('scripts/models/*');
require('scripts/routes/*');
require('scripts/components/*');
require('scripts/views/*');
require('scripts/router');
Run Code Online (Sandbox Code Playgroud)

但是当我用配置文件启动业力时,它会报告此错误

Firefox 30.0.0 (Ubuntu) ERROR
ReferenceError: require is not defined at ~/myApp/app/scripts/app.js:4
Run Code Online (Sandbox Code Playgroud)

我试图改变karma.conf文件中库的顺序但是不起作用.

Tra*_*zeK 6

尝试安装requirejs并将其包含在karma.conf.js的files部分中.

npm install requirejs
Run Code Online (Sandbox Code Playgroud)

运行此命令将创建node_modules文件夹(如果尚不存在).RequireJS可能会在:

node_modules/requirejs/require.js
Run Code Online (Sandbox Code Playgroud)

因此,您可以尝试编辑您的文件部分,如下所示:

files: [
    "node_modules/requirejs/require.js",
    ...
]
Run Code Online (Sandbox Code Playgroud)