Настроих приложение Angular с requireJS. Преди внедряването обединявам всичко в един и уникален файл. Обикновено външните библиотеки нямат обвивка на requireJS 'define'.
Например библиотеката Angular Parallax е написана така:
# https://github.com/durated/angular-parallax/blob/master/angular-parallax.min.js
angular.module("duParallax",["duScroll","duParallax.directive"...
Ето моят main.js:
require.config({
baseUrl: '/angular-dev',
paths: {
angular: '//ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular.min',
angularScroll: 'bower_components/angular-scroll/angular-scroll.min',
angularParallax: 'bower_components/ng-parallax/angular-parallax.min'
},
shim: {
'angular': { exports: 'angular' },
'angularScroll': { deps: ['angular'] },
'angularParallax': { deps: ['angular'] }
}
});
Използвам grunt-contrib-requirejs, за да обединя всички библиотеки (не тези на CDN) в един и уникален файл. Ето какво получавам след групирането на всичко:
angular.module("duParallax",["duScroll","duParallax.directive"...
define("angularParallax", ["angular"], function(){});
Но това, което очаквам, е кодът да бъде обвит в дефиницията:
define("angularParallax", ["angular"], function(){
angular.module("duParallax",["duScroll","duParallax.directive"...
});
Как мога да постигна най-новото, без да променя самата библиотека?
Редактиране: Според този друг въпрос на stackoverflow, ето как трябва да работи. Но също така използвам grunt-contrib-requirejs, за да обединя моя код и това може да е проблемът.