Karma:未捕获的ReferenceError:未定义jQuery

时间:2013-08-14 21:24:18

标签: jquery twitter-bootstrap karma-runner

我在我的基于yeoman的angularjs app上运行Karma。

运行“grunt karma”时出现以下错误:

Chrome 28.0 (Mac) ERROR
    Uncaught ReferenceError: jQuery is not defined
    at myNgApp/admin/app/scripts/bootstrap.min.js:6
Chrome 28.0 (Mac): Executed 0 of 0 ERROR (0.206 secs / 0 secs)

当我通过“grunt服务器”在我的浏览器上启动应用程序时,一切似乎都很好。控制台上也没有错误。

我的index.html也会在任何其他JavaScript文件之前导入jquery.min.js。知道发生了什么事吗?

更新:我感觉命令grunt karma正在查看我脚本目录中的所有文件。 Bootstrap是最早的一个,它可能在jQuery之前加载,因此错误。

如果是这种情况,我该如何制止?

1 个答案:

答案 0 :(得分:43)

你是否在karma.conf.js中加载了jQuery?

这就是我的列表的样子:

// list of files / patterns to load in the browser
files: [
  'app/bower_components/jquery/jquery.js',
  'app/bower_components/angular/angular.js',
  'app/bower_components/moment/moment.js',
  'app/bower_components/underscore/underscore.js',
  'app/bower_components/angular-mocks/angular-mocks.js',
  'app/bower_components/angular-resource/angular-resource.js',
  'app/bower_components/angular-route/angular-route.js',
  'app/bower_components/angular-sanitize/angular-sanitize.js',
  'app/bower_components/ngInfiniteScroll/ng-infinite-scroll.js',
  'app/bower_components/parametrizedLocation/dist/parametrizedLocation.js',
  'app/bower_components/angular-cookies/angular-cookies.js',
  'app/bower_components/angular-translate/angular-translate.js',
  'app/bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js',
  'app/bower_components/angular-translate-storage-cookie/angular-translate-storage-cookie.js',
  'app/bower_components/angular-translate-storage-local/angular-translate-storage-local.js',
  'app/scripts/*.js',
  'app/scripts/**/*.js',
  'test/mock/**/*.js',
  'test/spec/**/*.js'
],