我正在使用 Yeoman AngularJS 生成器构建 map 应用程序。我已经使用 Bower 安装了 Angular-Google-Maps。如果我使用“gruntserve”来测试应用程序,它工作正常并且 map 加载正确。如果我只是发出“grunt”来构建应用程序,它会失败并显示“模块‘google-maps’不可用!您要么拼写错误了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。”
我不太确定为什么它不适用于默认任务。我运行了“grunt BowerInstall”并确认index.html确实有对 angular-google-maps 的正确引用。我也会在此之前加载 Google Maps API。
这是我的 app.js
angular
.module('webappApp', [
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute',
'google-maps'
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.otherwise({
redirectTo: '/'
});
});
最佳答案
我设法解决了这个问题。该错误是在 Karma 测试期间发生的,因为它没有找到 Google Maps API,也没有找到 angular-google-maps 源。因此,我更新了 karma.conf.js 以从 Bower_components 引入 Google Maps API 和 angular-google-maps 源。
files: [
'http://maps.googleapis.com/maps/api/js?sensor=false',
'app/bower_components/angular/angular.js',
'app/bower_components/angular-mocks/angular-mocks.js',
'app/bower_components/angular-resource/angular-resource.js',
'app/bower_components/angular-cookies/angular-cookies.js',
'app/bower_components/angular-sanitize/angular-sanitize.js',
'app/bower_components/angular-route/angular-route.js',
'app/bower_components/lodash/dist/lodash.compat.js',
'app/bower_components/angular-google-maps/dist/angular-google-maps.js',
'app/scripts/*.js',
'app/scripts/**/*.js',
'test/mock/**/*.js',
'test/spec/**/*.js'
],
关于javascript - 使用 angular-google-maps 指令在 "grunt serve"期间有效,但在默认 grunt 任务期间无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24148797/