Gulp 使用 requirejs 减少 angular 应用文件的问题

Gulp Minify issues with angular app files using 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 文件的正确过程吗? 我是否需要研究任何其他优化技术?

问题不在于缩小。您需要在 Angular 应用

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

但是,为了加快开发速度,您可以使用 gulp-ng-annotate