如何优化AngularJS配置函数

如何优化AngularJS配置函数,angularjs,angularjs-directive,angular-ui-router,angularjs-scope,Angularjs,Angularjs Directive,Angular Ui Router,Angularjs Scope,我的app.js文件中有以下配置函数和运行函数。优化这些函数的最佳方法是什么?我们能把这些移到一个配置函数中吗? 或者我们可以将这些文件移到另一个文件中并使用。如果可以,请在注释中更新我的代码 .config(['cfpLoadingBarProvider', function(cfpLoadingBarProvider) { cfpLoadingBarProvider.includeSpinner = false; cfpLoadingBarProvider.i

我的app.js文件中有以下配置函数和运行函数。优化这些函数的最佳方法是什么?我们能把这些移到一个配置函数中吗? 或者我们可以将这些文件移到另一个文件中并使用。如果可以,请在注释中更新我的代码

.config(['cfpLoadingBarProvider', function(cfpLoadingBarProvider) {
        cfpLoadingBarProvider.includeSpinner = false;
        cfpLoadingBarProvider.includeBar = true;

    }])
    .run(function($state, $rootScope, $window) {
        $rootScope.$state = $state;
        $rootScope.$on("$locationChangeSuccess",
            function(event, current, previous, rejection) {
                $window.scrollTo(0, 0);
            });
    })
    .config(function($httpProvider) {
        return $httpProvider.interceptors.push("AuthInterceptor");
    })
    .config(['toastyConfigProvider', function(toastyConfigProvider) {
        toastyConfigProvider.setConfig({
            limit: 2,
            sound: true,
            position: 'top-center',
            shake: false,
            theme: 'material'
        });
    }])
    .config(function($stateProvider, $urlRouterProvider, $locationProvider, helloProvider, toastrConfig) {
        helloProvider.init({
            facebook: '1234567899',
            google: '12345890-wgewrgwrgwrgrgwr.apps.googleusercontent.com',
            twitter: 'wgwerwrgwrgwrgwrgwrw'
        }, {
            redirect_uri: 'redirect.html',
            oauth_proxy: 'https://auth-server.herokuapp.com/proxy',
            oauth_version: '1.0a' // probably 1.0a with hello.js

        });

也许您可以使用一个.config调用简化您的配置函数,然后您还可以命名您的依赖项来处理一个丑陋的过程

.config(["cfpLoadingBarProvider", 
         "$httpProvider", 
         "toastyConfigProvider", 
         "$stateProvider", 
         "$urlRouterProvider", 
         "$locationProvider", 
         "helloProvider", 
         "toastrConfig",
    function (cfpLoadingBarProvider, 
              $httpProvider, 
              toastyConfigProvider, 
              $stateProvider, 
              $urlRouterProvider, 
              helloProvider, 
              toastrConfig) {
        cfpLoadingBarProvider.includeSpinner = false;
        cfpLoadingBarProvider.includeBar = true;
        $httpProvider.interceptors.push("AuthInterceptor");
        toastyConfigProvider.setConfig({
            limit: 2,
            sound: true,
            position: 'top-center',
            shake: false,
            theme: 'material'
        });
        helloProvider.init({
            facebook: '1234567899',
            google: '12345890-wgewrgwrgwrgrgwr.apps.googleusercontent.com',
            twitter: 'wgwerwrgwrgwrgwrgwrw'
        }, {
                redirect_uri: 'redirect.html',
                oauth_proxy: 'https://auth-server.herokuapp.com/proxy',
                oauth_version: '1.0a' // probably 1.0a with hello.js

            });
    }])
    .run(function ($state, $rootScope, $window) {
        $rootScope.$state = $state;
        $rootScope.$on("$locationChangeSuccess",
            function (event, current, previous, rejection) {
                $window.scrollTo(0, 0);
            });
    });
如果您想在多个文件中组织配置函数,最好的选择可能是使用捆绑包,在这种情况下,有一些可行的选项。 例如,您可以使用concat(缩小、丑陋)文件,以便:


文件

文件1:

文件1:

文件3:


一饮而尽

var gulp = require("gulp");
var concat = require("gulp-concat");
var sourcemaps = require("gulp-sourcemaps");

gulp.task("ts", () => {
    return gulp.src("./src/js/**/*.js")
            .pipe(sourcemaps.init())
            .pipe(concat("dist.js"))
            .pipe(sourcemaps.write())
            .pipe(gulp.dest("./js/"))
})
相同,或者如果您正在使用。 我更喜欢从单个应用程序/模块定义开始,然后如果解决方案开始增长,我会打开捆绑解决方案


最好。

定义“优化”。您是否测量到这些函数执行速度太慢,导致性能问题?如果没有,为什么您认为应该优化它们?没有,没有性能问题。保留多个配置函数是一种好做法吗?我们可以将此配置移到sperate文件中吗?最佳做法是什么?
angular.module('mymodule', [])
    .config(["dependencyB", function (dependencyB) {
        dependencyB.doSomething();
    }]);
angular.module('mymodule', ["dependecies..."])
    .run(["authService", (authService) => {
        authService.fillAuthData();
    }]);
var gulp = require("gulp");
var concat = require("gulp-concat");
var sourcemaps = require("gulp-sourcemaps");

gulp.task("ts", () => {
    return gulp.src("./src/js/**/*.js")
            .pipe(sourcemaps.init())
            .pipe(concat("dist.js"))
            .pipe(sourcemaps.write())
            .pipe(gulp.dest("./js/"))
})