0

我正在使用 Yeoman AngularJS 生成器构建地图应用程序。我已经使用 bower 安装了 angular-google-maps。如果我使用“grunt serve”来测试应用程序,它可以正常工作并且地图可以正确加载。如果我只是发出“grunt”来构建应用程序,它会失败并说“模块'google-maps'不可用!您拼错了模块名称或忘记加载它。如果注册模块,请确保将依赖项指定为第二个论点。”

我不确定为什么它不适用于默认任务。我运行了“grunt bowerInstall”并确认 index.html 确实对 angular-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: '/'
      });
  });
4

1 回答 1

1

我设法解决了这个问题。该错误发生在 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'
],
于 2014-06-10T19:22:35.777 回答