Requirejs 최적화 부트 스트랩 오류

니코

내 웹 사이트 프로젝트의 경우 다중 페이지를 사용하려면 js 설정이 필요합니다 ( https://github.com/requirejs/example-multipage-shim 참조 ).

최적화 후에는 main.js와 page1.js의 두 파일을 목표로합니다. Main.js에는 부트 스트랩 / 축소를로드하는 app.js가 포함되어 있습니다 (아래 r.js 빌드 파일 참조). 그러나 bootstrap-collapse 함수 page1.js를 호출하면 최적화 후에 작동하지 않습니다. app.js에서 동일한 호출을 수행하면 최적화 후에 작동합니다. page1.js의 축소 호출의 경우 부트 스트랩 축소 기능에서 'Undefined is not a function'오류가 발생합니다. 최적화가 없으면 모든 것이 잘 작동합니다.

내가 뭘 잘못하고 있니?

이것은 내 requirejs 구성입니다.

requirejs.config({
    paths: {
        'jQuery'   : ["http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery","vendor/jquery/jquery-1.9.1"],
        'bootstrap': 'vendor/bootstrap'
    },
    shim: {
        'jQuery': {exports: "$"},
        'bootstrap/slider': { deps: ['jQuery'], exports: '$.fn.slider' },
        'bootstrap/affix': { deps: ['jQuery'], exports: '$.fn.affix' },
        'bootstrap/alert': { deps: ['jQuery'], exports: '$.fn.alert' },
        'bootstrap/button': { deps: ['jQuery'], exports: '$.fn.button' },
        'bootstrap/carousel': { deps: ['jQuery'], exports: '$.fn.carousel' },
        'bootstrap/collapse': { deps: ['jQuery'], exports: '$.fn.collapse' },
        'bootstrap/dropdown': { deps: ['jQuery'], exports: '$.fn.dropdown' },
        'bootstrap/modal': { deps: ['jQuery'], exports: '$.fn.modal' },
        'bootstrap/scrollspy': { deps: ['jQuery'], exports: '$.fn.scrollspy'        },
        'bootstrap/tab': { deps: ['jQuery'], exports: '$.fn.tab' },
        'bootstrap/tooltip': { deps: ['jQuery'], exports: '$.fn.tooltip' },
        'bootstrap/popover': { deps: ['jQuery'], exports: '$.fn.popover' },
        'bootstrap/transition': { deps: ['jQuery'], exports: '$.support.transition' },
        'bootstrap/typeahead': { deps: ['jQuery'], exports: '$.fn.typeahead'  }
    }
});

이것은 내 빌드 파일입니다.

{
    appDir: '../assets',
    baseUrl: './js',
    mainConfigFile: '../assets/js/main.js',
    dir: '../dist',
    fileExclusionRegExp: /^(r|build)\.js$/,
    optimizeCss: 'standard',
    removeCombined: true,
    paths: {
        jQuery: "empty:"
    },
    modules:
    [
        {
            name: 'main',
            include: ['app']
        },
        {
            name: 'pages/page1',
            exclude: ['app']
        }
    ]
}

app.js :

require(['app/mobilemenu','bootstrap/collapse']);

page.js :

require(['jQuery','bootstrap/collapse'],function($)
{
   $("div").collapse(); 
});

문서 헤드 섹션 :

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="/js/vendor/requirejs/require.js" data-main="/js/main.js"></script>

본문 태그 닫기 전 :

<script>
   require(["main"],function(){
       require(["app","pages/page1"]);
   });
</script>
Louis

주요 문제

<script>태그로 jQuery를 로드하고 RequireJS로도로드합니다. 둘 중 하나만 수행해야합니다. <script>태그를 제거 하고 RequireJS가 jQuery를로드하도록하면보고 한 문제가 해결됩니다. 때때로 작동하지 않는 이유는 현재 설정으로는 부트 스트랩이 올바른 jQuery객체 에 스스로 설치 될 것인지 보장 할 수 없기 때문입니다 . 로드하는 데 자체적으로 설치되고 <script>RequireJS가 jQuery를 다시로드 할 때 덮어 쓸 수 있습니다.

<script>jQuery를로드 하기 위해 태그 를 유지할 이유가있는 경우 새 jQuery를로드하는 대신 해당 jQuery 를 사용 하도록 RequireJS를 가져와야합니다 . 방법에 대한 방법 이 답변참조하십시오 .

2 차 문제

구성에 즉시 눈에 띄는 두 가지 문제가 있습니다.

  1. 1.8.0 이상부터 jQuery에는 shim이 필요하지 않습니다.

  2. 당신은 해야한다 으로 jQuery를 참조 jquery하면 그 RequireJS 모듈 이름으로 그것을 참조 할 때. 모듈 이름 jquery(모두 소문자)이 jQuery 소스에 하드 코딩되어 있기 때문 입니다. 구성의 변화에 따라서 jQueryjquery, 모두 같은 define통화를하고 require그것을 사용할 수 있습니다 전화.

위의 문제는 RequireJS를 정의되지 않은 동작 영역으로 보냅니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

부트 스트랩 최적화시 브런치 오류

분류에서Dev

부트 스트랩 정적 팝 오버

분류에서Dev

jQuery noconflict, 부트 스트랩 및 requirejs

분류에서Dev

div 오버랩-유동적 / 부트 스트랩

분류에서Dev

부트 스트랩 4 Navbar Scrollsy 오류

분류에서Dev

부트 스트랩 3 축소 오류

분류에서Dev

Laravel 5.5 부트 스트랩 오류

분류에서Dev

중간 화면의 부트 스트랩 위치 레이아웃 오류

분류에서Dev

부트 스트랩 캐 러셀 슬라이더 화살표 오류

분류에서Dev

Restangular 및 Twitter 부트 스트랩으로 작업하는 Requirejs로 Angularjs 가져 오기

분류에서Dev

부트 스트랩 오버레이 (화면 하위 섹션)

분류에서Dev

부트 스트랩 팝 오버-화살표 제거

분류에서Dev

다중 앱 프로젝트를위한 Grunt 및 requirejs 최적화 프로그램

분류에서Dev

부트 스트랩 CSS-열 클래스 오류

분류에서Dev

부트 스트랩 NavBar 최대 높이

분류에서Dev

부트 스트랩에 설치 오류가 있습니까?

분류에서Dev

부트 스트랩 양식 수평 정렬 오류

분류에서Dev

부트 스트랩 UI 각도 모델로드 오류

분류에서Dev

부트 스트랩 UI 각도 모델로드 오류

분류에서Dev

부트 스트랩 UI 각도 모델로드 오류

분류에서Dev

부트 스트랩 탐색 모음의 링크 오류

분류에서Dev

부트 스트랩 Navbar 드롭 다운 오류

분류에서Dev

부트 스트랩 오류에 대한 토큰 필드

분류에서Dev

관리 VM의 부트 스트랩 오류

분류에서Dev

오류 반응 부트 스트랩에 대한 경고

분류에서Dev

Ruby on Rails 오류에서 부트 스트랩 사용

분류에서Dev

부트 스트랩의 이상한 위치 오류

분류에서Dev

angularjs의 부트 스트랩 설치로 인한 오류

분류에서Dev

Liferay Vaadin 부트 스트랩 콘텐츠 인코딩 오류

Related 관련 기사

  1. 1

    부트 스트랩 최적화시 브런치 오류

  2. 2

    부트 스트랩 정적 팝 오버

  3. 3

    jQuery noconflict, 부트 스트랩 및 requirejs

  4. 4

    div 오버랩-유동적 / 부트 스트랩

  5. 5

    부트 스트랩 4 Navbar Scrollsy 오류

  6. 6

    부트 스트랩 3 축소 오류

  7. 7

    Laravel 5.5 부트 스트랩 오류

  8. 8

    중간 화면의 부트 스트랩 위치 레이아웃 오류

  9. 9

    부트 스트랩 캐 러셀 슬라이더 화살표 오류

  10. 10

    Restangular 및 Twitter 부트 스트랩으로 작업하는 Requirejs로 Angularjs 가져 오기

  11. 11

    부트 스트랩 오버레이 (화면 하위 섹션)

  12. 12

    부트 스트랩 팝 오버-화살표 제거

  13. 13

    다중 앱 프로젝트를위한 Grunt 및 requirejs 최적화 프로그램

  14. 14

    부트 스트랩 CSS-열 클래스 오류

  15. 15

    부트 스트랩 NavBar 최대 높이

  16. 16

    부트 스트랩에 설치 오류가 있습니까?

  17. 17

    부트 스트랩 양식 수평 정렬 오류

  18. 18

    부트 스트랩 UI 각도 모델로드 오류

  19. 19

    부트 스트랩 UI 각도 모델로드 오류

  20. 20

    부트 스트랩 UI 각도 모델로드 오류

  21. 21

    부트 스트랩 탐색 모음의 링크 오류

  22. 22

    부트 스트랩 Navbar 드롭 다운 오류

  23. 23

    부트 스트랩 오류에 대한 토큰 필드

  24. 24

    관리 VM의 부트 스트랩 오류

  25. 25

    오류 반응 부트 스트랩에 대한 경고

  26. 26

    Ruby on Rails 오류에서 부트 스트랩 사용

  27. 27

    부트 스트랩의 이상한 위치 오류

  28. 28

    angularjs의 부트 스트랩 설치로 인한 오류

  29. 29

    Liferay Vaadin 부트 스트랩 콘텐츠 인코딩 오류

뜨겁다태그

보관