RequireJS를 사용하는 응용 프로그램에 대한 몇 가지 테스트를 작성하고 있습니다. 응용 프로그램의 작동 방식 때문에 require
을 호출하여 일부 클래스를 가져올 것으로 예상됩니다. 따라서 테스트를 위해 약간의 더미 클래스가 있지만이 테스트를 위해 개별 파일에 넣지 않아도됩니다. 여기모듈 정의 및 RequireJS 즉시 사용하기
define('test/foo', function() {
return "foo";
});
define('test/bar', function() {
return "bar";
});
test("...", function() {
MyApp.load("test/foo"); // <-- internally, it calls require('test/foo')
});
문제는 스크립트 onload 이벤트 해고 될 때까지 그 모듈의 평가가 지연되고 있다는 점이다 : 나는 많은 단지 define()
이를 수동으로 테스트 파일 내의과 같이 선호하는 것입니다. require.js around line 1600에서
:
//Always save off evaluating the def call until the script onload handler. //This allows multiple modules to be in a file without prematurely //tracing dependencies, and allows for anonymous module support, //where the module name is not known until the script onload event //occurs. If no context, use the global queue, and get it processed //in the onscript load callback. (context ? context.defQueue : globalDefQueue).push([name, deps, callback]);
내가 수동으로 큐를 실행할 수있는 몇 가지 방법이 있나요은
를 평가한다?
, 당신은 단지에있는을 각 모듈에 특정 이름을 부여하십시오 (OP의 각'define' 함수에 대한 첫 번째 문자열 인수를보십시오). – nickf
또한 모듈은 테스트 용이며 ** 매우 기본 **입니다. 위의 예보다 약간 복잡하지만 많이는 아닙니다. 각 파일을 자체 파일에 저장하는 것은 너무 혼란 스럽습니다. – nickf
확실합니다. 이해합니다. 하지만 내가 문서에서 알 수있는 것부터, 최적화/빌드 단계가 발생한 후에는 여러 개의 모듈이있는 단일 파일이있는 유일한 경우입니다. 솔직히 말해서, 나는 requirejs에 익숙하지 않지만, 몇 가지 프로젝트에서 사용했다. 워드 프로세서는 꽤 명확합니다. '디스크에 파일 당 * 모듈 정의가 하나만 있어야합니다. 최적화 도구를 사용하여 모듈을 최적화 된 번들로 그룹화 할 수 있습니다. ' 나는 거기에서 시작할 것이다 :) – keeganwatkins