Проблемы Gulp Minify с файлами угловых приложений с использованием requirejs

Мы используем Requirejs в качестве загрузчика модулей для нашего приложения Angular и пытались использовать gulp в качестве инструмента сборки. Минимизировали все файлы приложения (так как это та же структура папок) и использовали их для публикации. при использовании минифицированной версии возникает ошибка Unknown provider: e. Ошибка возникает при загрузке приложения из файла app.js. (... укажите, что есть еще подобные)

define(['angularAMD', 'jquery', 'angular-ui-router', 'modelBuilderApp', ... ], function (angularAMD, $) {
    'use strict';
    var app = angular.module('app', ['ui.router',
        'modelBuilderApp',....]);
    ... DO configure app ...
    angularAMD.bootstrap(app); //ERROR HERE    
    return app;
});

оригинальная версия

define(['angularAMD', 'angular-ui-router', 'routeResolver', 'RestService', 'AuthModule', 'smarttable', 'ngScrollable'],
    function (angularAMD) {
        'use strict';
        var app = angular.module('modelBuilderApp', ['ui.router', 'ngScrollable']);
        app.config(function ($locationProvider, $stateProvider, $urlRouterProvider, routeResolverProvider) {
            var route = routeResolverProvider.route;

            $stateProvider
                .state('model', angularAMD.route({...

уменьшенная версия

define(["angularAMD", "angular-ui-router", "routeResolver", "RestService", "AuthModule", "smarttable", "ngScrollable"],
function (angularAMD) {
    "use strict";
    var e = angular.module("modelBuilderApp", ["ui.router", "ngScrollable"]);
    return e.config(function (e, l, r, t) { //ERROR HERE
        var o = t.route;
        l.state("model", angularAMD.route({....

Я что-то пропустил? Это правильная процедура минимизации файлов requirejs? Нужно ли мне изучать какие-либо другие методы оптимизации?


person NikhilGoud    schedule 28.08.2017    source источник


Ответы (1)


Проблема не в минификации. Вам необходимо использовать внедрение зависимостей в приложение Angular.

app.config(['$locationProvider', '$stateProvider', '$urlRouterProvider', 'routeResolverProvider', function ($locationProvider, $stateProvider, $urlRouterProvider, routeResolverProvider) {
    //Your code
}]);

Однако для более быстрой разработки вы можете использовать gulp-ng-annotate.

person Satpal    schedule 28.08.2017
comment
gulp-ng-annotate очень помог мне, спасибо за рекомендацию. - person NikhilGoud; 28.08.2017