使用angular-google-maps指令在“grunt服务”期间工作.但在默认的grunt任务期间不会

Using angular-google-maps directive works during "grunt serve" but not during default grunt task

本文关键字:grunt 默认 任务 工作 服务 指令 使用 angular-google-maps      更新时间:2023-09-26

我正在使用AngularJS生成器构建一个地图应用程序。我用wer安装了谷歌角地图。如果我使用"grunt serve"来测试应用程序,它会运行良好,地图也会正确加载。如果我只是发出"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'
],