2014-02-27 3 views
0

교차로 http://millermedeiros.github.io/crossroads.js/이 제대로로드되지 않은 것처럼 보이지만 RequireJS를 사용하여 JS 파일을로드하려고합니다. Chrome Dev Toolbar를 사용하여 확인했으며 모든 JS 파일이 실제로로드되었습니다. 그러나 실행 window.crossroad 나를 반환했습니다?RequireJS를 사용하여 crossroads.js를로드 할 수 없습니다

다음은 내 requirejs 설정입니다. 친절하게 조언 ... 감사합니다! 당신이 코드를 보면

index.html을

<script data-main="scripts/config" src="scripts/require.js"></script> 

config.js

require.config({ 
    shim: { 
    "zepto.min": { 
     exports: "$" 
    }, 
    "underscore.min": { 
     exports: "_" 
    }, 
    "crossroads.min": { 
     exports: "crossroads" 
    } } 
}); 

require(["zepto.min","underscore.min", "crossroads.min",], function() { 
    console.log("=> Loading app") 
    require(["main"]); 
}); 

main.js

require(["hp-config", "hp-model", "hp-view", "hp-controller"], function() { 
    console.log("=> Init"); 
    console.log(window.crossroads); 
    //$(document).ready(function(){ HP.C.init(); }); 
}); 
+0

나는 window.signals가 정의되어 있지 않음을 알게되었습니다. – iwan

답변

0

교차로에서는 AMD 환경 (RequireJS가 있음)에 있음을 감지하고 define 만 호출합니다. 그래서 당신은 당신이 가지고있는 심을 제거해야합니다. 기본 규칙은 define을 호출하지 않는 라이브러리는 심이 필요하지만 define을 호출하는 라이브러리는 필요하지 않습니다. window.crossroads이 정의되지 않은 이유는 교차로가 에있는 글로벌 공간에서을 내보내는 대신 define을 호출하기 때문입니다.

당신이 현재 가지고있는 require.config 전화를 감안할 때, 업데이트 된 호출은 다음과 같습니다

require.config({ 
    shim: { 
    "zepto.min": { 
     exports: "$" 
    }, 
    "underscore.min": { 
     exports: "_" 
    } 
    } 
}); 

위의 설정은 필요한 최소한의 변화이다. 그러나 이 아닌require 또는 define으로 전달되는 이름으로 .min을 사용하는 것이 좋습니다. 그래서 config.js 대신 수 :

require.config({ 
    paths: { 
    zepto: "zepto.min", 
    underscore: "underscore.min", 
    crossroads: "crossroads.min" 
    }, 
    shim: { 
    zepto: { 
     exports: "$" 
    }, 
    underscore: { 
     exports: "_" 
    } 
    } 
}); 

require(["zepto","underscore", "crossroads",], function() { 
    console.log("=> Loading app") 
    require(["main"]); 
}); 

이 방법, 당신은 (디버깅) 비 축소 된 버전으로 전환하려는 경우 당신이이 모듈을 필요로하는 paths 어디서나 이동하지 않고 설정을 변경할 수 있으며, 이름을 변경하십시오.

+0

루이에게 감사드립니다. 귀하의 설명에 따라 올바른 config.js를 공유 하시겠습니까? 미안 해요. requirejs에 새로 왔습니다. – iwan

+0

내 대답을 편집했습니다. – Louis