Ответ 1
Вы можете использовать такие инструменты, как Uglify или Closure Compiler, для минимизации и обфускации кода AngularJS, но может быть сложно из-за возможности Angular устанавливать зависимости на основе имени используемой переменной (что будет изменено, когда вы минимизировать или обфускать код).
Вам нужно будет использовать форму массива для определения ваших модулей, контроллеров и т.д. В разделе "Примечания по минимизации" на шаге 5 учебника Angular описано: https://docs.angularjs.org/tutorial/step_05
В принципе, если вы в настоящее время используете сокращенный метод инъекции зависимостей, то есть:
myApp.controller('myController', function($scope, $http) { ... });
вам нужно изменить его на более подробный метод на основе массива:
myApp.controller('myController', ['$scope', '$http', function($scope, $http) { ... }]);
Таким образом, вы сообщаете Angular, какие объекты нужно вводить в вашу функцию, используя строки, которые не будут изменены во время минимизации, вместо того, чтобы полагаться на имена самих переменных $scope и $http.
Существует инструмент командной строки ngmin, который автоматически внесет эти изменения для вас, если вы не хотите изменять свою кодовую базу: https://github.com/btford/ngmin
Раздел "Концептуальный обзор" в nmmin readme также имеет хорошее объяснение этой проблемы.