Préserver les noms d'injection dans la minification d'AngularJS
La minification du code JavaScript peut introduire des problèmes dans le système d'injection de dépendances d'AngularJS. Lorsque la minification supprime les noms de variables et de fonctions, elle peut briser l'identité sur laquelle AngularJS s'appuie pour faire correspondre les dépendances à leurs contrôleurs.
Méthode traditionnelle
Pour éviter ce problème, le L'approche traditionnelle consistait à déclarer les contrôleurs à l'aide d'une fonction anonyme avec les dépendances sous forme de tableau de chaînes. Cela préserve les noms des dépendances lors de la minification :
var MyController = ['$scope', '$http', function($scope, $http) { // ... }];
Méthode d'injection
Cependant, la méthode préférée dans les versions modernes d'AngularJS consiste à utiliser la syntaxe inject pour l'injection de dépendances. . Cela permet de définir les noms des dépendances encore plus explicitement et de préserver leur identité avec précision lors de la minification :
var MyController = function($scope, $http) { $http.get('https://api.github.com/repos/angular/angular.js/commits') .then(function(response) { $scope.commits = response.data }) }; MyController.$inject = ['$scope', '$http'];
Recommandation
Toujours utiliser la méthode inject pour l'injection de dépendances dans AngulaireJS. Il garantit que les noms de dépendances sont conservés pendant la minification, évitant ainsi les erreurs d'injection potentielles.
Alternatives
Pour plus de commodité, vous pouvez utiliser le package ng-annotate npm dans le cadre de votre processus de construction. Cet outil ajoutera automatiquement la propriété $inject à vos contrôleurs, réduisant ainsi la verbosité de la syntaxe d'annotation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!