Gulp使用requirejs缩小角度应用程序文件的问题

时间:2017-08-28 11:17:56

标签: javascript angularjs gulp requirejs gulp-uglify

我们使用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文件的正确程序吗? 我是否需要研究其他任何优化技术?

1 个答案:

答案 0 :(得分:4)

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

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

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