Минимизация проблем с приложениями AngularJS
У меня есть приложение, написанное на AngularJS и Bootstrap, которое отлично работает, но когда я попытался минимизировать его, у меня возникли проблемы.
Index.html моего приложения:
<!DOCTYPE html>
<html lang="es-ES" >
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Vebor Editor</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="css/style.min.css">
</head>
<body ng-app="editor" ng-strict-di>
<header ng-include="'views/header.html'"></header>
<div class="container">
<div ui-view></div>
</div>
<footer class="footer" ng-include="'views/footer.html'"></footer>
<script src="/lib/angular/angular.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-route.min.js"></script>
<script src="https://cdn.rawgit.com/angular-ui/ui-router/0.2.18/release/angular-ui-router.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-resource.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-aria.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-messages.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-sanitize.min.js"></script>
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap-tpls.min.js"></script>
<script src="/js/scripts.min.js"></script>
</body>
</html>
У меня есть 14 различных файлов js, поэтому я не буду копировать их здесь, если есть что-то, что вам нужно, дайте мне знать. Основной файл js выглядит примерно так:
(function(){
'use strict';
angular.module('editor', [
'ngMaterial', 'ngRoute', 'ngSanitize', 'ui.bootstrap', 'ui.router',
'editor.mainControllers', 'editor.searchControllers', 'editor.classControllers', 'editor.contactController', 'editor.viewerController', 'editor.listingControllers',
'editor.services', 'editor.serverCallsServices', 'editor.translationService'
]);
function config (...){...}
function run(...){...}
})();
Во-первых, я использовал функцию uglify в gulp для генерации проекта дистрибутива с помощью style.min.css и script.min.js.
Во-вторых, я вручную копирую все содержимое моих js-файлов в один уникальный script.js, а затем минимизировал его с помощью внешних инструментов. (Проблемы, с которыми я столкнулся, возникали даже с унифицированным файлом без минимизации).
проблема
Проблема проста для объяснения. Страница не загружена, это похоже на бесконечный цикл, потому что консоль ничего не показывает и DOM отсутствует. Если я перезагружаю страницу, она все еще не работает, я должен закрыть вкладку и открыть ее снова.
Из-за того, что нет информации от браузера, я очень растерялся. Вы знаете, почему это может произойти? Или, может быть, есть что-то, что я мог бы использовать, чтобы попытаться обнаружить проблему?
Я уже знал о проблеме с инжекцией в Angular, и у меня есть все мои контроллеры с правильным $inject.
1 ответ
На вашем месте я бы попытался загрузить файлы в другом порядке.