필자는 requireJS를 사용하여 Angular 응용 프로그램을 설정했습니다. 배포하기 전에 모든 것을 하나의 고유 한 파일로 묶습니다. 일반적으로 외부 라이브러리에는 requireJS 'define'래퍼가 없습니다.RequireJS가로드 된 외부 라이브러리를 래핑하는 방법은 무엇입니까?
는 예를 들어, 각도 시차 라이브러리는 다음과 같이 기록됩니다
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'] }
}
});
내가 모든 번들 꿀꿀-있는 contrib-requirejs을 사용하고 있습니다 : 여기
# https://github.com/durated/angular-parallax/blob/master/angular-parallax.min.js
angular.module("duParallax",["duScroll","duParallax.directive"...
내 main.js입니다 라이브러리 (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를 사용하고 있는데, 이것이 문제 일 수 있습니다. 기본 r.js으로
Shim from grunt-contrib-requirejs not wrapping library
죄송합니다, 제가 제거 유산이다. Angular는 사용자가 볼 수있는대로 CDN에서로드되므로 나머지 라이브러리에는 번들로 제공되지 않습니다. 그것은 생성 된 파일에서 "각도"가 아직 정의되지 않았 음을 의미하므로 "정의"내에 래핑 된 다음 "각도"가 사용 가능할 때로드 될 것으로 예상됩니다. –
당신이 "모든 라이브러리를 묶는 데 grunt-contrib-requirejs를 사용하고 있습니다."라고 덧붙여서 약간의 문제가 명확 해 졌기 때문에 내 의견을 철회합니다. 그래,해야 할 일을하지 않아. 불행히도이 도구를 사용하지 않으므로 사용자가해야 할 일을 쉽게 알지 못합니다. – Louis
도움을 주셔서 감사합니다. 다른 사람들을 명확히 해주기를 바랍니다. –