[AngularJS] Best Practise - Minification and annotation
Annotation Order:
It's considered good practice to dependency inject Angular's providers in before our own custom ones.
Bad:
// randomly ordered dependencies function SomeCtrl (MyService, $scope, AnotherService, $rootScope) { }
Good:
// ordered Angular -> custom function SomeCtrl ($scope, $rootScope, MyService, AnotherService) { }
Minification methods, automate it
Use ng-annotate
for automated dependency injection annotation, as ng-min
is deprecated.
With our function declarations outside of the module references, we need to use the @ngInject
comment to explicitly tell ng-annotate
where to inject our dependencies. This method uses $inject
which is faster than the Array syntax.
Manually specifiying the dependency injection arrays costs too much time.
Bad:
function SomeService ($scope) { } // manually declaring is time wasting SomeService.$inject = ['$scope']; angular .module('app') .factory('SomeService', SomeService);
Good:
// Using the ng-annotate keyword @ngInject to instruct things that need annotating: /** * @ngInject */ function SomeService ($scope) { } angular .module('app') .factory('SomeService', SomeService);
Will produce:
/** * @ngInject */ function SomeService ($scope) { } // automated SomeService.$inject = ['$scope']; angular .module('app') .factory('SomeService', SomeService);