我在我的基于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之前加载,因此错误。
如果是这种情况,我该如何制止?
答案 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'
],