2016-04-26 2 views
0

Я пытаюсь настроить структуру, чтобы я мог минимизировать/убрать весь мой угловой код.AngularJS - Модифицирующие модули с глотком

Я попытался скопировать угловую структуру модуля из Angle Bootstrap Theme

Это прекрасно работает, когда все unmified JS файлы загружены, но когда я пытаюсь Минимизировать все это в конечном итоге не найти модули.

Я получаю эту ошибку: [$injector:nomod] Module 'app.core' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

Это проект MVC 5.2.3 и структура угловых файлов, как это:

Scripts/angular/app.module.js 
Scripts/angular/modules/core/core.config.js 
Scripts/angular/modules/core/core.module.js 
Scripts/angular/modules/module1/module1.controller.js 
Scripts/angular/modules/module1/module1.module.js 

Так app.module.js выглядит следующим образом :

(function() { 
    'use strict'; 

    angular 
     .module('myApp', [ 
      'app.core', 
      'app.module1', 
      ... 
     ]); 
})(); 

core.config.js:

(function() { 
    'use strict'; 

    angular 
     .module('app.core') 
     .config(coreConfig); 

    coreConfig.$inject = ['$controllerProvider', '$compileProvider', '$filterProvider', '$provide', '$animateProvider']; 
    function coreConfig($controllerProvider, $compileProvider, $filterProvider, $provide, $animateProvider) { 

     var core = angular.module('app.core'); 
     core.controller = $controllerProvider.register; 
     core.directive = $compileProvider.directive; 
     core.filter = $filterProvider.register; 
     core.factory = $provide.factory; 
     core.service = $provide.service; 
     core.constant = $provide.constant; 
     core.value = $provide.value; 

     core.config(function (paginationTemplateProvider) { 
      paginationTemplateProvider.setPath(window.rootUrl + 'scripts/plugins/angular-pagination/dirPagination.tpl.html'); 
     }); 

     $animateProvider.classNameFilter(/^((?!(ng-no-animation)).)*$/); 
    } 

})(); 

core.module.js:

(function() { 
    'use strict'; 

    angular 
     .module('app.core', [ 
      'ngSanitize', 
      'ngRoute', 
      'ngAnimate', 
      'ngResource', 
      'ngStorage', 
      'ui.bootstrap' 
     ]); 
})(); 

И все модули имеют такую ​​структуру:

module1.controller.js:

(function() { 
    'use strict'; 

    angular 
     .module('app.note') 
     .controller('module1', module1); 

    module1.$inject = ['$scope', '$localStorage']; 
    function module1($scope, $localStorage) { 
     ..... 
    }; 
})(); 

и module1.module.js:

(function() { 
    'use strict'; 

    angular 
     .module('app.module1', []); 
})(); 

gulpfile.js

/// <binding Clean='clean' /> 
"use strict"; 

var gulp = require("gulp"), 
    rimraf = require("rimraf"), 
    concat = require("gulp-concat"), 
    cssmin = require("gulp-cssmin"), 
    uglify = require("gulp-uglify"); 

var paths = { 
    webroot: "./" 
}; 


paths.js = paths.webroot + "scripts/angular/**/*.js"; 
paths.minJs = paths.webroot + "scripts/angular/**/*.min.js"; 

.. 

gulp.task("min:js", function() { 
    return gulp.src([paths.js, "!" + paths.minJs], { base: "." }) 
     .pipe(concat(paths.concatJsDest)) 
     .pipe(uglify()) 
     .pipe(gulp.dest(".")); 
}); 

.. 
+0

Является ли core.module импортированным до приложения.module? – Revive

+0

Хмм, не знаю, что вы имеете в виду. Я также могу добавить файл gulpfile. – stibay

+0

Таким образом, единственный файл, который я добавляю на мой взгляд, - это файл minfied из gulp. – stibay

ответ

1

Возможно, это проблема заказа.

У вас есть хорошее имя conventio, поэтому вы можете заказать свой входной поток, сначала беря файлы * .module.js.

вы должны включить

var order = require("gulp-order"); 

чем после gulp.src вы должны заказать вход risult должен быть КакЭто

gulp.task("min:js", function() { 
    return gulp.src([paths.js, "!" + paths.minJs], { base: "." }) 
     .pipe(order([ 
      '**/*.module.js', 
      '**/*.js' 
     ])) 
     .pipe(concat(paths.concatJsDest)) 
     .pipe(uglify()) 
     .pipe(gulp.dest(".")); 
}); 

как вы можете видеть порядок взять массив шаблон ,

Возможно, образец не подходит для вашего случая, но он должен работать.

надеюсь, что это поможет

+0

рад, что gulp thingy работает! – rick

+0

заработал. благодаря – stibay

Смежные вопросы