comment faire pour installer underscore.js dans mon angulaire de l'application?

J'ai utilisé yo-angulaire pour générer mon angularjs modèle avec bootstrap/grunt/bower. Je tiens également à utiliser le trait de soulignement dans l'application:

npm install underscore --save-dev

Dans le MainCtrl je suis d'appel underscore.js juste pour voir si ça marche:

angular.module('yomanApp')
  .controller('MainCtrl', function ($scope) {
    $scope.awesomeThings = [
      'HTML5 Boilerplate',
      'AngularJS',
      'AngularJS'
    ];

    _.each([1,2,3],console.log);
  });

Quand je lance l'application avec google Chrome, j'obtiens cette errmsg dans la console:

ReferenceError: _ is not defined
    at new <anonymous> (http://localhost:9000/scripts/controllers/main.js:18:5)
    at invoke (http://localhost:9000/bower_components/angular/angular.js:4203:17)
    at Object.instantiate (http://localhost:9000/bower_components/angular/angular.js:4211:27)
    at http://localhost:9000/bower_components/angular/angular.js:8501:28
    at link (http://localhost:9000/bower_components/angular-route/angular-route.js:975:26)
    at invokeLinkFn (http://localhost:9000/bower_components/angular/angular.js:8258:9)
    at nodeLinkFn (http://localhost:9000/bower_components/angular/angular.js:7768:11)
    at compositeLinkFn (http://localhost:9000/bower_components/angular/angular.js:7117:13)
    at publicLinkFn (http://localhost:9000/bower_components/angular/angular.js:6996:30)
    at $get.boundTranscludeFn (http://localhost:9000/bower_components/angular/angular.js:7135:16) <div ng-view="" class="ng-scope">

Après cette erreur, j'ai ajouté le module de l'application de config:
'use strict';

/**
 * @ngdoc overview
 * @name yomanApp
 * @description
 * # yomanApp
 *
 * Main module of the application.
 */
angular
  .module('yomanApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch',
    'underscore'

  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl'
      })
      .when('/accordeon', {
        templateUrl: 'views/accordeon.html',
        controller: 'IssuesCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

Maintenant j'obtiens cette erreur:

Uncaught Error: [$injector:modulerr] Failed to instantiate module yomanApp due to:
Error: [$injector:modulerr] Failed to instantiate module underscore due to:
Error: [$injector:nomod] Module 'underscore' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

Dernière chose que j'ai essayé était de l'ajouter à la index.html:

<script src="node_modules/underscore/underscore.js"></script>

Cette résultats dans la même erreur que ci-dessus. Également obtenir un 404 pour le underscore.js?? Est-ce un gros problème de configuration ou autre chose?

Si vous l'avez installé via npm install underscore --save-dev alors vous aurez besoin d'utiliser quelque chose comme Browserify de l'utiliser dans le navigateur. Si vous ne voulez pas faire cela, alors vous devez installer via bower et inclure la balise script dans votre code html avant de l'inclure angulaire. Également déposer le --save-dev drapeau au lieu d'utiliser seulement --save puisqu'il n'est PAS un développement de la dépendance.

OriginalL'auteur Pindakaas | 2015-04-21